Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Data Control Coupling Analysis

ASecurity

Use when you must analyze data coupling and control coupling between airborne software components: identify the data-coupling items between component pairs from their written and read variable sets with declared synchronization suppression, identify the control-coupling items across call edges where a caller-written variable is read by the callee, compute the coupling coverage ratio against declared evidence, and return the PASS or FAIL verdict with the uncovered item list. Produces the data-...

2 stars
0 votes
0 copies
0 views
Added 9/27/2026
ai-agentspythontesting

Works with

claude code

Security Analysis

A100/100

Scanned 9/27/2026

Install to Claude Code

$npx -y skills add ashfordeOU/aero-agent-skills --skill data-control-coupling-analysis --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Data Control Coupling Analysis?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Data Control Coupling Analysis
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ashfordeou-data-control-coupling-analysis/badge)](https://www.skillsdirectory.com/skills/ashfordeou-data-control-coupling-analysis)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: data-control-coupling-analysis
description: "Use when you must analyze data coupling and control coupling between airborne software components: identify the data-coupling items between component pairs from their written and read variable sets with declared synchronization suppression, identify the control-coupling items across call edges where a caller-written variable is read by the callee, compute the coupling coverage ratio against declared evidence, and return the PASS or FAIL verdict with the uncovered item list. Produces the data-coupling item list, the control-coupling item list, the coupling coverage ratio and the evidence verdict that gate the level A inter-component coupling objective. Trigger: data coupling analysis, control coupling analysis, shared-variable pairs, call-edge coupling items, coupling coverage evidence, level-a coupling objectives, inter-component coupling."
license: Apache-2.0
compliance: STANDARDS-REF
standards:
  - id: do-178c
    reference-only: true
gated: false
domain: avionics
pack: do178c
compatibility: "agentskills.io SKILL.md; any SKILL.md host (Claude Code, Hermes, OpenClaw)"
metadata:
  domain: avionics
  subdomain: do178c
  tags: [data-control-coupling-analysis, data-coupling-analysis, control-coupling-analysis, shared-variable-pairs, coupling-coverage-evidence, level-a-objectives]
  version: 0.1.0
  author: AeroSkills
---

# Data and Control Coupling Analysis (avionics/do178c/data-control-coupling-analysis)

Use when the task is DO-178C level A inter-component coupling analysis:
identifying the shared-variable data-coupling items and the call-edge
control-coupling items between airborne software components, then grading
the declared evidence against the identified items. This leaf implements
the coupling item model and the coupling coverage verdict in pure Python,
stdlib only, deterministic and offline. It pairs with
avionics/do178c/verification for intra-component structural analysis and
avionics/do178c/software-testing for the execution-based testing that
supplies coupling evidence.

## Domain quick reference

- Data coupling: two components couple through a shared variable when one
  writes it and the other reads it. A data-coupling item (A, B, var)
  exists for every ordered pair (A, B), A != B, with var in writes(A)
  intersect reads(B).
- Declared synchronization: a declared handshake or protected port
  suppresses the item it names. Declaring the synchronization (A, C, X)
  removes exactly the (A, C, X) item and nothing else.
- Control coupling: a caller transfers data to a callee through the call.
  A control-coupling item (A, B, var) exists on a declared call edge
  (A, B) for every var in writes(A) intersect reads(B).
- Data coupling is pairwise over all components; control coupling exists
  only along the declared call edges, so an item can appear in one list
  and not the other.
- Coupling coverage ratio: covered / total over the combined item lists,
  0.0 when no items are identified, always in [0, 1].
- Evidence verdict: PASS when the ratio is 1.0, that is every identified
  inter-component coupling item has declared evidence; otherwise FAIL with
  the sorted uncovered item list. No items identified is PASS at ratio
  0.0, because nothing is uncovered.
- Items sort by (A, B, var) tuple order in every output list.

## Workflow

1. Declare the components: each comp_id maps to {"writes": set,
   "reads": set}, the variables the component writes and reads.
2. Declare the call edges as directed (caller, callee) pairs and any
   declared synchronization triples (A, B, var) that suppress data items.
3. Run data_coupling_items to get the pairwise shared-variable items, with
   the sync declarations applied.
4. Run control_coupling_items over the call edges to get the call-edge
   items.
5. Collect the evidence flags: one item key (A, B, var) per item with
   evidence present (execution-based test evidence, analysis result or
   declared review record).
6. Run coupling_coverage_ratio and coverage_verdict over the combined
   data and control item lists, or run analyze_coupling once for the full
   result dict.
7. Take the verdict: PASS closes the coupling objective input for level A;
   FAIL names the uncovered_items list that the evidence campaign must
   still address.
8. Confirm the deterministic checks with the contract test
   scripts/test_data_control_coupling_analysis.py.

## Worked example

Components: A writes {X}; B reads {X} and writes {Y}; C reads {X, Y};
D writes {Y}. Call edges (A, B), (B, C). No sync declarations. Real
module outputs:

- data_coupling_items -> [(A,B,X), (A,C,X), (B,C,Y), (D,C,Y)], 4 items.
  The D-C item exists even though D has no call edge to C, because the
  data model is pairwise over all components.
- With sync_declarations {(A,C,X)}: [(A,B,X), (B,C,Y), (D,C,Y)], 3 items.
  The declared A-C handshake suppresses exactly that item.
- control_coupling_items over the two edges -> [(A,B,X), (B,C,Y)],
  2 items. No (A,C,X) control item: there is no A to C call edge.
- Evidence for all 6 combined items: ratio 1.0, verdict PASS.
- Evidence missing (A,C,X): ratio 5/6 = 0.833, verdict FAIL with
  uncovered [(A,C,X)].
- analyze_coupling returns component_count 4, total_items 6 and the same
  verdict; empty evidence on an empty item list returns ratio 0.0 with
  verdict PASS.

## Verification

- Run python3 scripts/test_data_control_coupling_analysis.py: all tests
  pass offline (34 methods, deterministic, no network, no RNG).
- Confirm data items sort by (A, B, var): [(A,B,X), (A,C,X), (B,C,Y),
  (D,C,Y)].
- Confirm the suppression rule removes exactly the declared item.
- Confirm the directional rule: (A, B, X) exists, (B, A, X) does not.
- Confirm ValueError on a sync declaration or call edge naming an unknown
  component, and on evidence for an item that was not identified.
- Confirm the empty-list verdict is PASS at ratio 0.0.

## Related leaves

- avionics/do178c/verification: intra-component structural analysis
  sibling. This leaf owns inter-component data and control coupling; that
  leaf owns the control-flow structural metrics inside a component.
- avionics/do178c/development: requirement-to-code linkage ownership, the
  input side of the level A evidence.
- avionics/do178c/software-testing: execution-based testing that supplies
  the coupling evidence this leaf grades.
- avionics/do178c/planning: the software planning artifacts that declare
  the coupling analysis approach.
- flight-test-operations/envelope/structural-coupling-test: the distinct
  airframe coupling domain of the flight control system with the
  airframe, not software inter-component coupling.

## Pitfalls

- Treating control coupling as a subset of data coupling: data coupling
  is pairwise over all components (the (D, C, Y) item exists even though
  D has no call edge to C), while control coupling exists only on
  declared call edges - run both item builders and grade the combined
  list.
- Reversing item direction: items are ordered pairs with the shared var
  in writes(A) intersect reads(B), so (A, B, X) exists and (B, A, X)
  does not; swapping components fabricates an item the evidence
  campaign never needs.
- Expecting a declared synchronization to clear more than one item:
  declaring (A, C, X) suppresses exactly that data item and nothing
  else, and sync declarations do not touch control-coupling items at
  all.
- Failing an empty identification: an empty combined item list with no
  evidence returns ratio 0.0 and verdict PASS because nothing is
  uncovered - do not report a PASS-at-0.0 as a coverage failure.
- Accepting evidence for items never identified: evidence keys must
  match identified (A, B, var) items, and sync declarations or call
  edges naming an unknown component raise ValueError - validate the
  model before collecting evidence.
- Grading only the ratio: the verdict dict names the sorted
  uncovered_items list on FAIL, which is the actionable output for the
  level A evidence campaign; a bare 0.833 ratio without the uncovered
  list hides which item is missing.

## Behavior contract (gate 3)

Run the deterministic contract test (stdlib unittest, offline):

    python3 scripts/test_data_control_coupling_analysis.py

It covers the four-component worked example with its exact item lists and
bounds, synchronization suppression, pairwise data coupling direction,
call-edge-only control coupling, tuple sorting, coupling coverage ratio,
PASS and FAIL verdicts with the sorted uncovered list, empty-list PASS at
ratio 0.0, ValueError rejection of unknown components and foreign
evidence, the exact analyze_coupling dict keys, and determinism.

## Compliance

- Standards referenced, not reproduced: DO-178C is a gated RTCA standard.
  This leaf names the standard and paraphrases the coupling objective as
  the requirement that every identified inter-component coupling item has
  evidence; it never reproduces the gated objective tables or appendix
  text. Name and paraphrase only, per standards-map.yaml.
- compliance: STANDARDS-REF, gated: false.

Attribution

ashfordeOUashfordeOU
View sourceMore from ashfordeOU →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1074701 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

694821 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

691 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →