Skip to content

feat(420): arckit-build v0.4 input-hash change detection#476

Merged
tractorjuice merged 1 commit into
mainfrom
feat/420-arckit-build-input-hashes
May 15, 2026
Merged

feat(420): arckit-build v0.4 input-hash change detection#476
tractorjuice merged 1 commit into
mainfrom
feat/420-arckit-build-input-hashes

Conversation

@tractorjuice
Copy link
Copy Markdown
Owner

Summary

Implements issue #420 item 1 — file-hash-based change detection for the arckit-build skill.

  • Orchestrator records sha256sum of every dep artefact at build time in state.targets[id].input_hashes.
  • On --resume (or any subsequent run), targets whose inputs hash-differ from the recorded value are marked stale; staleness cascades through the DAG in topological order, so editing REQ now correctly rebuilds RISK, HLD, SOBC, PLAN, …, TRACE.
  • --refresh NAME keeps its unconditional override.
  • New --skip-hash-check flag bypasses hash + cascade checks for fast resume (existing v0.3 behaviour).
  • state_format_version bumped 0.30.4; 0.3 state files are read-compatible (no spurious rebuild on upgrade).

What's NOT in this PR

Item 2 (orchestrator-side fallback for skills inaccessible to subagents) is explicitly out of scope per the issue thread. Still listed under "Future versions" in SKILL.md.

Files changed

  • arckit-claude/skills/arckit-build/SKILL.md — operating principles, args table, new "Input-hash change detection" section, wave plan algorithm, step 5 (update state.json), step 7 (compute work list), state schema example, failure modes, future versions.

Test plan

Skill is prompt-driven, so testing is integration-only on a real project:

  • On v48 test repo, run /arckit:build 001 --plan from a fresh checkout — verify all targets show as (build) not (skip).
  • Complete a full build, then re-run /arckit:build 001 --resume — verify every target shows (skip).
  • Edit projects/001-*/ARC-001-REQ-v*.md (add a blank line), re-run /arckit:build 001 --resume --plan — verify REQ is (stale), and downstream targets (RISK, HLD, SOBC, PLAN, TRACE, …) are (stale-cascade). Non-deps of REQ (e.g. PRIN, GLOSSARY) stay (skip).
  • Same edit + --skip-hash-check: verify all targets (skip).
  • State drift: rm an artefact, verify test -f still catches deletion (no regression from 0.3).
  • Open a 0.3 state.json in a 0.4 build — verify no spurious rebuilds, first wave's writes migrate the file to 0.4 in place.

Closes #420 (item 1 only).

🤖 Generated with Claude Code

Records SHA-256 of every dep artefact at build time in
state.targets[id].input_hashes and re-checks on resume.
Edits to upstream artefacts now cascade staleness through
the DAG instead of being silently skipped by test -f
idempotency. Adds --skip-hash-check escape hatch and bumps
state_format_version to 0.4 (0.3 state read-compatible).

Item 2 (orchestrator-side skill fallback) deferred — still
listed under "Future versions" in SKILL.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@tractorjuice tractorjuice merged commit 601aa18 into main May 15, 2026
1 check passed
@tractorjuice tractorjuice deleted the feat/420-arckit-build-input-hashes branch May 15, 2026 11:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(arckit-build): v0.4 — file-hash change detection + orchestrator-side skill fallback

1 participant