Skip to content

craftkit v1.55.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 12:30
· 9 commits to main since this release
3de090e

Context sources: planning checks asks against connected team docs repos

Teams keep PRDs, specs, SQL, meeting notes and decisions in a GitHub repo, but planning never
looked at it, so a spec could quietly contradict a decision the team had already recorded.

  • New /context-source skill connects, replaces, disconnects and lists any number of docs repos
    per project. Connections live in ~/.craftkit/context-sources.json, keyed by project root;
    each repo is a craftkit-managed shallow clone under ~/.craftkit/context-cache/, shared across
    projects and pruned when none uses it (ADR-0003). Nothing is written into the project except
    citations in its planning files.
  • /interview, /spec, /plan and /define inject partials/context-source.md: refresh once,
    search the requirement's terms under one 8-file budget across all sources, cite
    <source>@<sha>:<path>:<line>, and pause on a conflict with a fixed A/B/C prompt, including a
    new cross-source case when two repos disagree. A helper that cannot run is reported as
    context source not consulted, never as silence; an unconnected project is unchanged.
  • scripts/context-source.{sh,js} install to ~/.craftkit/bin. URLs carrying a credential are
    refused; symlinks and filenames carrying control, line-separator or bidi characters are never
    read, and every path is printed as one JSON string, so a filename cannot forge output fields
    or lines; a failed listing is reported as an error, never as "nothing found"; a corrupt store is refused rather than read as empty; a read-only sandbox
    (Codex default) falls back to the cached SHA as cannot-verify.
  • partials/external-sources.md scopes its "never write fetched content" rule to Figma and Lark
    and learns the kind: git source row; partials/planning-resolve.md documents its shape.
  • Verified headless on Claude Code and Codex against fixture repos, with runs and pass bars in
    docs/research/context-source-hosts.md: prompt-vs-doc and cross-source conflicts each cited
    correctly 5/5 per host, unconnected baseline unchanged, and a real github.com repo without
    credentials refused in about a second with no prompt. Cursor and Gemini are unverified.