Summary
Two related v0.4 items for the arckit-build skill (currently v0.4 banner, but with these features still listed under "Future versions"). Both are documented in arckit-claude/skills/arckit-build/SKILL.md § "Future versions" but not yet tracked as issues.
Item 1 — File-hash-based change detection
Today's idempotency rule is state.targets[id].status == "complete" AND file exists. This misses the case where an input file changed (e.g. you edited REQ) but a downstream artefact (RISK, HLD, …) wasn't rebuilt.
Proposed
- Record SHA-256 of every input file at build time in
state.targets[id].input_hashes
- On next run, if any input's current hash ≠ recorded hash, mark the target as stale and rebuild it (plus everything downstream of it via the DAG)
- Skip targets where all input hashes match — true idempotency, not just "I once finished"
Why now
The "State drift — user manually deletes/edits artefacts after build" failure mode in §"Failure modes" (SKILL.md) is currently detected only via test -f. Hash detection catches edits, not just deletions.
Item 2 — Orchestrator-side fallback for skills inaccessible to subagents
The current smoke-test (step 6 in the run order) catches the failure mode where subagents in this session don't have access to plugin skills, but gives up if it fails — halts and asks the user to fix the session.
Proposed
- On
NOT_AVAILABLE smoke-test response, the orchestrator reads the relevant arckit:* skill prompts itself (one-time, into main context)
- Inlines those prompts as plain text into worker prompts, instead of relying on
Skill({skill: "..."})
- Workers then run the skill instructions without ever needing the Skill tool
Trade-off
Trades main-context tokens for resilience. It's the only way the harness works in sessions where plugin skills don't propagate to subagents. v1.0's dedicated arckit:artefact-worker subagent type makes this obsolete (see #TBD), but that's a much bigger refactor.
Acceptance criteria
References
arckit-claude/skills/arckit-build/SKILL.md § "Future versions" → v0.4 line
arckit-claude/skills/arckit-build/SKILL.md § "Failure modes" → State drift, Subagent skill access
- v4.13.1 baseline shipped 2026-05-03
Summary
Two related v0.4 items for the
arckit-buildskill (currently v0.4 banner, but with these features still listed under "Future versions"). Both are documented inarckit-claude/skills/arckit-build/SKILL.md§ "Future versions" but not yet tracked as issues.Item 1 — File-hash-based change detection
Today's idempotency rule is
state.targets[id].status == "complete" AND file exists. This misses the case where an input file changed (e.g. you edited REQ) but a downstream artefact (RISK, HLD, …) wasn't rebuilt.Proposed
state.targets[id].input_hashesWhy now
The "State drift — user manually deletes/edits artefacts after build" failure mode in §"Failure modes" (SKILL.md) is currently detected only via
test -f. Hash detection catches edits, not just deletions.Item 2 — Orchestrator-side fallback for skills inaccessible to subagents
The current smoke-test (step 6 in the run order) catches the failure mode where subagents in this session don't have access to plugin skills, but gives up if it fails — halts and asks the user to fix the session.
Proposed
NOT_AVAILABLEsmoke-test response, the orchestrator reads the relevantarckit:*skill prompts itself (one-time, into main context)Skill({skill: "..."})Trade-off
Trades main-context tokens for resilience. It's the only way the harness works in sessions where plugin skills don't propagate to subagents. v1.0's dedicated
arckit:artefact-workersubagent type makes this obsolete (see #TBD), but that's a much bigger refactor.Acceptance criteria
state.jsonschema bumped tostate_format_version: "0.4"with newinput_hashesfield per targetREQmarksRISK,HLD,SOBC,PLAN, …,TRACEall stale, in dep order--refresh NAMEcontinues to force-rebuild regardless of hash status (existing behaviour)--skip-hash-checkfor users who want fast resume without staleness checksARC-001-REQ-v1.0.md, run/arckit:build 001 --resume, verify only the affected downstream artefacts rebuildReferences
arckit-claude/skills/arckit-build/SKILL.md§ "Future versions" → v0.4 linearckit-claude/skills/arckit-build/SKILL.md§ "Failure modes" → State drift, Subagent skill access