Files
msd-core/docs
Tom Boucher dacc23137a feat(3347): opt-in auto-update of knowledge graph after main HEAD advances
Closes #3347

Config:
- Add graphify.auto_update (default false) to manifests:
  sdk/shared/config-defaults.manifest.json, config-schema.manifest.json

Hook:
- hooks/gsd-graphify-update.sh — PostToolUse Bash matcher
  - Gates: tool_name=Bash, HEAD-advancing git op, CI=unset, in git repo,
    current branch == default branch (git.base_branch override or main/
    master/trunk fallback), graphify.enabled && graphify.auto_update both
    true, graphify on PATH, no live PID lock
  - Writes .planning/graphs/.last-build-status.json with status=running
    synchronously, then detaches hooks/lib/gsd-graphify-rebuild.sh
- hooks/lib/gsd-graphify-rebuild.sh — detached rebuild runner
  - PID-lock acquire + trap-on-exit cleanup
  - graphify update . then cp graphify-out/* → .planning/graphs/
  - Status file rewritten to status=ok|failed with exit_code, duration_ms,
    head_at_build
- Portable detach (subshell + disown, no setsid dependency)

Installer:
- bin/install.js: register hook as PostToolUse Bash matcher (5s timeout)
- Add to gsdHooks uninstall list and expectedShHooks warning list

Planner / researcher status surface (issue #3347 reviewer must-have AC):
- agents/gsd-planner.md and agents/gsd-phase-researcher.md
  load_graph_context steps now read .last-build-status.json and surface:
  running → "rebuild in flight"; failed → "auto-rebuild FAILED at {ts},
  context is from prior build"; ok with stale head_at_build → "HEAD has
  advanced since last build"

Settings:
- get-shit-done/workflows/settings.md adds "Graph auto-update" question
  with No-Recommended default; bullets and update_config block updated

Inventory:
- docs/INVENTORY.md hook count 12 → 13 with new row
- docs/INVENTORY-MANIFEST.json regenerated

Tests:
- tests/feat-3347-graphify-auto-update-config.test.cjs (8 tests):
  isValidConfigKey accepts graphify.auto_update, CANONICAL_CONFIG_DEFAULTS
  default false, config-set round-trip, sibling key preservation
- tests/feat-3347-graphify-auto-update-hook.test.cjs (18 tests):
  all bail paths (non-Bash, non-HEAD-advancing, enabled=false,
  auto_update=false, CI=true, non-default-branch, missing graphify bin,
  live-PID lock), dispatch path with mock graphify bin (sync running
  status + detached transition to ok/failed), stale-PID lock, all five
  HEAD-advancing command matchers, git.base_branch override

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 11:59:43 -04:00
..

GSD Documentation

Comprehensive documentation for the Get Shit Done (GSD) framework — a meta-prompting, context engineering, and spec-driven development system for AI coding agents.

Language versions: English · Português (pt-BR) · 日本語 · 简体中文

Documentation Index

Document Audience Description
Architecture Contributors, advanced users System architecture, agent model, data flow, and internal design
Installer Migrations Contributors Architecture for safe install-time migrations, cleanup, preservation, dry-run planning, and rollback
Feature Reference All users Feature narratives and requirements for released features (see CHANGELOG for latest additions)
v1.42.1 Release Notes All users Stable release notes for the 1.42.1 release
Command Reference All users Stable commands with syntax, flags, options, and examples
Configuration Reference All users Full config schema, workflow toggles, model profiles, git branching
Custom PR Body Sections All users How to append project-specific PRD sections to /gsd-ship PR bodies
CLI Tools Reference Contributors, agent authors gsd-tools.cjs programmatic API for workflows and agents
JSON Error Mode Contributors, agent authors Machine-readable gsd-tools --json-errors failure envelopes
Agent Reference Contributors, advanced users Role cards for primary agents — roles, tools, spawn patterns (the agents/ filesystem is authoritative)
User Guide All users Workflow walkthroughs, troubleshooting, and recovery
Issue-Driven Orchestration All users Recipe for driving GSD from a tracker issue (GitHub / Linear / Jira) using existing primitives — no new commands or daemon
Context Monitor All users Context window monitoring hook architecture
Discuss Mode All users Assumptions vs interview mode for discuss-phase
Canary Stream Contributors, early adopters dev → @canary dist-tag policy, when to install, rollback path