Gitignore (core change): - Remove stale blanket .sf/ entries from .gitignore (migrated to .git/info/exclude on 2026-04-29, never cleaned up) - gitignore.ts: split SF_RUNTIME_EXCLUSION_PATTERNS into two modes — SF_SYMLINK_EXCLUSION_PATTERNS (blanket .sf for symlink repos where git cannot traverse the symlink) and SF_RUNTIME_EXCLUSION_PATTERNS (granular runtime-only patterns for directory repos, enabling .sf/milestones/ and other durable planning artifacts to be tracked) - ensureGitInfoExclude() now detects symlink vs directory and writes the correct patterns, handling transitions between modes cleanly - ADR-001 status: Proposed → Accepted Docs: - Fill 11 placeholder scaffold docs with real SF-specific content: PLANS, DESIGN, PRODUCT_SENSE, QUALITY_SCORE, RELIABILITY, SECURITY, design-docs/index.md, exec-plans/active, exec-plans/completed, exec-plans/tech-debt-tracker, records/index - Add records note: docs/records/2026-05-01-repo-vcs-and-notifications.md - ADR-008 status: Accepted → Proposed (deferred — not applicable to current usage model where Claude Code assists externally, not as a Pi provider inside SF's dispatch loop) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.5 KiB
Completed Execution Plans
repo-vcs skill — 2026-05-01
What shipped: repository-vcs-context.ts detects Git vs Jujutsu and injects VCS guidance into the agent system prompt. src/resources/skills/repo-vcs/ bundled skill for commit, push, and safe-push workflows. Skill trigger registered in bootstrap/system-context.ts.
Evidence: commit a611cd579 — 18 files, 943 insertions.
Follow-up debt: None — no regressions in smoke tests.
Autonomous workflow stabilization — 2026-05-01
What shipped: Major hardening pass on the auto-loop: crash recovery, stuck detection, production mutation approval gate, safe-smoke task LLM approval, headless source startup progress. See commit 12e7333f1.
Evidence: All existing tests pass. Smoke tests: sf --version, sf --help, sf --print all pass.
Follow-up debt: Parallel milestone state locking (SQLite) deferred to ADR-018 Phase 1+.
JSDoc Purpose/Consumer annotations — 2026-05-01
What shipped: Purpose: and Consumer: JSDoc annotations added to app-paths.ts, bundled-extension-paths.ts, errors.ts, extension-discovery.ts, extension-registry.ts, headless-types.ts, headless.ts, traces.ts. Fulfills SPEC_FIRST_TDD "JSDoc is the purpose" iron law for core modules.
Evidence: commit a611cd579.
Pi clean seam architecture (ADR-010) — 2026-04
What shipped: Hard boundary between SF extension code and Pi SDK internals. SF extensions may only call the public Pi extension API; no direct access to Pi internals. Enforced via import rules.
ADR: ADR-010
Branchless worktree architecture (ADR-001) — prior
What shipped: Git worktrees for milestone isolation without branch-per-milestone overhead. Each milestone executes in its own worktree; changes merge back to main on completion.
ADR: ADR-001
Pipeline simplification (ADR-003) — prior
What shipped: Research phase merged into planning; mechanical completion model for tasks that need no LLM judgment. Eliminated a redundant dispatch phase.
ADR: ADR-003
Capability-aware model routing (ADR-004) — prior
What shipped: Routing from tier/cost selection to task-capability matching. Model selection considers tool requirements, vision, function-calling, and context size, not just cost tier.
ADR: ADR-004