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>
59 lines
2.5 KiB
Markdown
59 lines
2.5 KiB
Markdown
# 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](../../dev/ADR-010-pi-clean-seam-architecture.md)
|
|
|
|
---
|
|
|
|
## 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](../../dev/ADR-001-branchless-worktree-architecture.md)
|
|
|
|
---
|
|
|
|
## 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](../../dev/ADR-003-pipeline-simplification.md)
|
|
|
|
---
|
|
|
|
## 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](../../dev/ADR-004-capability-aware-model-routing.md)
|