self-assess-arch-healthlisted
Install: claude install-skill Anselmoo/werkstoff
# self-assess-arch-health
Judge the real stage/wire dependency graph for structural deficiencies.
## Step 0: Settings gate, then the stage_graph prerequisite
```
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/self_assess_cli.py check-enabled --repo <repo_root> --skill self-assess-arch-health
```
Check whether `<output_dir>/stage_graph.json` exists. If it does not, this skill degrades to
`Ready-with-gaps` -- write a short `ARCH_HEALTH.md` and `arch_health_summary.json` (empty
`findings`, a note that `self-assess-stage-map` has not run) and stop. This is a degrade, not
an error: do not fail the skill invocation, just produce a minimal, honest artifact.
## Step 1: Read the full graph
Read `stage_graph.json` in full -- never the sampled viewer-format `stage_map.json`. Fan-in and
fan-out numbers must come from the complete graph.
## Step 2: Find deficiencies mechanically, then confirm against code
Use the graph helpers for the two structural checks that have precise definitions:
```
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/self_assess_cli.py find-cycles --stage-graph <path to stage_graph.json>
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/self_assess_cli.py find-god-modules --stage-graph <path to stage_graph.json>
```
`find-cycles` only returns strongly-connected components of size >= 2 (rule
`cycle-definition-in-graph`) -- a pair of stages that merely both import a shared third stage
is not a cycle, and the Tarjan-based implementation will not report it as one. `find-god-modules`
flags sta