singularity-forge/docs/exec-plans/active/index.md

37 lines
2.2 KiB
Markdown
Raw Normal View History

# Active Execution Plans
## ADR-018: Repo-Native Harness Evolution
**Purpose:** Make SF's harness mechanisms (verification gates, repo profiler, template kits, eval runner) useful in every repo SF works on, adapting over time as the repo changes shape.
**Scope:** Staged in 7 phases per ADR-018. Only phases 12 are in scope for near-term execution.
**Phase 1 — Repo profile snapshots (next)**
- Add read-only `RepoProfile` snapshot before each planning milestone
- Record observed (untracked) files in `.sf/sf.db` as `observed_only`
- No tracked repo file writes; no worker-prompt changes
**Phase 2 — Template kit registry and harness manifest**
- Parameterized harness template kit registry (Agent Runtime, RAG, Web App, Nix, Charm)
- Dry-run harness proposals as planning artifacts only — no tracked repo writes
**Acceptance criteria:** Phase 1 produces a repo profile snapshot in `.sf/sf.db` before every planning milestone. Phase 2 produces a dry-run harness proposal as a planning artifact viewable at milestone review.
**Falsifier:** If a planning milestone produces no repo profile entry in `.sf/sf.db`, Phase 1 is incomplete.
**Verification:** `node -e "require('./src/resources/extensions/sf/repo-profiler.js').buildRepoProfile(process.cwd()).then(p => console.log(JSON.stringify(p, null, 2)))"`
**ADR:** [ADR-018](../../dev/ADR-018-repo-native-harness-evolution.md)
---
## Notification Event Model Implementation
**Purpose:** Replace text-matching heuristics in `src/headless-events.ts` and `src/resources/extensions/sf/notification-overlay.ts` with structured `source`/`kind`/`blocking`/`dedupe_key` metadata on all inbound transcript events.
**Scope:** Propagate event metadata through all notification paths; update headless event parser to use structured fields; add deduplication by key instead of by text.
**Acceptance criteria:** `headless-events.ts` no longer uses string matching for event classification. Duplicate non-blocking workflow notices are collapsed by `dedupe_key`. A regression test asserts that automated notices cannot supersede the latest real user message.
**Design doc:** [notification-event-model.md](../../design-docs/notification-event-model.md) · [product spec](../../product-specs/notification-source-hygiene.md)