com um clique
traceability-gate
Enforces parent-link lineage across requirement layers.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
Enforces parent-link lineage across requirement layers.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
Flags risky shell commands and unsafe tree ops.
Detects high-confidence security risks in code.
Surfaces the dojo's non-negotiable prime directives.
Activates the dojo framework at the start of a session.
Plans multi-step work before writing code.
Captures lessons and promotes recurring patterns.
| name | traceability-gate |
| description | Enforces parent-link lineage across requirement layers. |
| tier | core |
| category | discipline |
| created_by | human |
| platforms | ["windows","macos","linux"] |
| tags | ["traceability","governance","togaf","gate"] |
| author | Andreas Wasita (@andreaswasita) |
The single governance gate for the TOGAF red thread: no artifact at layer N+1 may persist unless it carries a verified link to a parent at layer N. The skill does NOT elicit requirements and does NOT derive new ones; its only job is to refuse to let unlinked artifacts live.
requirements/** or any skill
that emits artifacts under it.optional-skills/ to
skills/ — learned skills must pass the same gate as live delivery.derive-nfr-from-driver or
derive-security-from-risk.requirements/<engagement>/.spec/artifact-schema.md defines the frontmatter contract.scripts/verify-traceability.sh is executable.The gate is allowed to be called against an empty engagement directory — it reports zero artifacts and exits 0. That is the seed state, not a failure.
# Full traceability check for one engagement
bash scripts/verify-traceability.sh requirements/<engagement>
# CI / strict mode — warnings (e.g. unratified) become failures
bash scripts/verify-traceability.sh --strict requirements/<engagement>
# Generate the RTM as a byproduct of the gate
bash scripts/gen-rtm.sh requirements/<engagement>
# Roll the gate into the dojo-wide gate
bash scripts/verify.sh # invokes run_traceability_checks
| Action | Tool | Notes |
|---|---|---|
| Run gate locally | bash scripts/verify-traceability.sh requirements/<engagement> | Exit 0 = lineage intact. |
| Run gate strict | bash scripts/verify-traceability.sh --strict … | CI default. |
| Regenerate RTM | bash scripts/gen-rtm.sh requirements/<engagement> | Writes docs/rtm-<engagement>.md. |
| Full dojo gate | bash scripts/verify.sh | Includes the traceability check. |
The gate walks every *.md under requirements/<engagement>/{BR,FR,NFR,SR,IR,TR}/
and parses YAML frontmatter only. The body is ignored — humans read
the body, the machine reads the schema.
For each artifact:
id, layer, title,
parent_ids, owner, measurable, ratified_by,
derivation_skill).id matches filename and starts with the correct layer prefix.layer is in {BR, FR, NFR, SR, IR, TR}.parent_ids entry resolves to an existing file in the same
engagement.layer is in the Valid parent layers column for
this artifact (see spec/artifact-schema.md §1).measurable: true for NFR/SR/TR.ratified_by empty → warning by default, failure in --strict.
CI runs --strict; the local loop does not, so iteration is fast.If the gate passes, regenerate the RTM. The RTM is never edited by hand — it is always a function of the artifact graph.
bash scripts/gen-rtm.sh requirements/<engagement>
# skip-traceability escape hatch. Every escape
hatch becomes the default within a quarter.TR straight to a BR because "it's obvious"
— the layers exist so the agent cannot quietly skip them.bash scripts/verify-traceability.sh requirements/sample exits 0.bash scripts/verify-traceability.sh --strict requirements/sample
exits 1 when at least one artifact has ratified_by: "".bash scripts/gen-rtm.sh requirements/sample writes a
non-empty docs/rtm-sample.md.bash scripts/verify.sh includes the traceability gate in its
output and the run is green.