diff --git a/openspec/changes/archive/2026-06-11-layered-map-protocol/apply-progress.md b/openspec/changes/archive/2026-06-11-layered-map-protocol/apply-progress.md new file mode 100644 index 0000000..c80f5f1 --- /dev/null +++ b/openspec/changes/archive/2026-06-11-layered-map-protocol/apply-progress.md @@ -0,0 +1,10 @@ +# Apply Progress + +Status: complete + +Summary: Implemented paired map/index artifacts, layered routing/orientation protocol, pair-aware patch/validate/reinit flows, config caps, and docs/runtime guidance. + +Implemented commits: +- c6064f8 Implement layered maps and context retrieval + +Stale-checkbox reconciliation: historical implementation completed in committed work above; tasks.md reconciled to checked state on 2026-06-11. diff --git a/openspec/changes/archive/2026-06-11-layered-map-protocol/archive-report.md b/openspec/changes/archive/2026-06-11-layered-map-protocol/archive-report.md new file mode 100644 index 0000000..15e1081 --- /dev/null +++ b/openspec/changes/archive/2026-06-11-layered-map-protocol/archive-report.md @@ -0,0 +1,9 @@ +# Archive Report + +Status: archived + +Archived path: openspec/changes/archive/2026-06-11-layered-map-protocol + +Archive mode: manual archive fallback in openspec-only repo with legacy flat change specs; canonical sync marked not-applicable in sync-report.md. + +Inputs preserved in archive: proposal.md, spec.md, design.md, tasks.md, apply-progress.md, verify-report.md, sync-report.md. diff --git a/openspec/changes/layered-map-protocol/design.md b/openspec/changes/archive/2026-06-11-layered-map-protocol/design.md similarity index 100% rename from openspec/changes/layered-map-protocol/design.md rename to openspec/changes/archive/2026-06-11-layered-map-protocol/design.md diff --git a/openspec/changes/layered-map-protocol/proposal.md b/openspec/changes/archive/2026-06-11-layered-map-protocol/proposal.md similarity index 100% rename from openspec/changes/layered-map-protocol/proposal.md rename to openspec/changes/archive/2026-06-11-layered-map-protocol/proposal.md diff --git a/openspec/changes/layered-map-protocol/spec.md b/openspec/changes/archive/2026-06-11-layered-map-protocol/spec.md similarity index 100% rename from openspec/changes/layered-map-protocol/spec.md rename to openspec/changes/archive/2026-06-11-layered-map-protocol/spec.md diff --git a/openspec/changes/archive/2026-06-11-layered-map-protocol/sync-report.md b/openspec/changes/archive/2026-06-11-layered-map-protocol/sync-report.md new file mode 100644 index 0000000..6ff286b --- /dev/null +++ b/openspec/changes/archive/2026-06-11-layered-map-protocol/sync-report.md @@ -0,0 +1,7 @@ +# Sync Report + +Status: NOT-APPLICABLE + +Reason: This repository uses legacy flat change artifacts (proposal.md/spec.md/design.md/tasks.md) and does not maintain a canonical openspec/specs/ tree for these changes. No canonical spec sync was performed. + +User-approved fallback: archive completed change as an audit record without canonical spec sync. diff --git a/openspec/changes/layered-map-protocol/tasks.md b/openspec/changes/archive/2026-06-11-layered-map-protocol/tasks.md similarity index 82% rename from openspec/changes/layered-map-protocol/tasks.md rename to openspec/changes/archive/2026-06-11-layered-map-protocol/tasks.md index 7f9a17b..d3b3ce6 100644 --- a/openspec/changes/layered-map-protocol/tasks.md +++ b/openspec/changes/archive/2026-06-11-layered-map-protocol/tasks.md @@ -58,18 +58,18 @@ ## Acceptance checklist -- [ ] Every non-ignored directory has both `.pi-map.md` and `.pi-map.index.md` -- [ ] Root Tier 0 behavior is emitted in generated root artifacts -- [ ] Indexes are routing-first, role-first, and include parent/child/sibling links -- [ ] Rich maps are orientation-first and include sibling index links -- [ ] Changed-directory patch always regenerates both artifacts -- [ ] Ancestor refresh follows small vs structural rules -- [ ] Validation hard-fails on missing/stale paired artifacts and supports `validate --fix` -- [ ] Workflow-hint count and tag cap are configurable -- [ ] No vector-store or Engram dependency is introduced -- [ ] `npm run typecheck` passes -- [ ] `npm test` passes -- [ ] `npm run lint` passes +- [x] Every non-ignored directory has both `.pi-map.md` and `.pi-map.index.md` +- [x] Root Tier 0 behavior is emitted in generated root artifacts +- [x] Indexes are routing-first, role-first, and include parent/child/sibling links +- [x] Rich maps are orientation-first and include sibling index links +- [x] Changed-directory patch always regenerates both artifacts +- [x] Ancestor refresh follows small vs structural rules +- [x] Validation hard-fails on missing/stale paired artifacts and supports `validate --fix` +- [x] Workflow-hint count and tag cap are configurable +- [x] No vector-store or Engram dependency is introduced +- [x] `npm run typecheck` passes +- [x] `npm test` passes +- [x] `npm run lint` passes *(N/A: repo has no ESLint config; pre-existing repository gap, not a change regression)* ## Review workload note This change crosses format, generation, patching, validation, config, docs, and prompt guidance. Keep implementation in narrow, reviewable slices and avoid one oversized PR. diff --git a/openspec/changes/archive/2026-06-11-layered-map-protocol/verify-report.md b/openspec/changes/archive/2026-06-11-layered-map-protocol/verify-report.md new file mode 100644 index 0000000..5fd9d41 --- /dev/null +++ b/openspec/changes/archive/2026-06-11-layered-map-protocol/verify-report.md @@ -0,0 +1,22 @@ +# Verify Report + +Status: PASS + +Change: layered-map-protocol + +Verified summary: Implemented paired map/index artifacts, layered routing/orientation protocol, pair-aware patch/validate/reinit flows, config caps, and docs/runtime guidance. + +Evidence commands: +- npm run typecheck +- npx vitest run +- npm run build +- node dist/cli.js validate . + +Current validation state: +- npm run typecheck: PASS +- npx vitest run: PASS (262/262) +- npm run build: PASS +- node dist/cli.js validate .: PASS + +Notes: +- Repo-wide lint remains unavailable because the repository has no ESLint config; treated as a pre-existing repository-level gap, not a change regression. diff --git a/openspec/changes/archive/2026-06-11-map-context-retrieval/apply-progress.md b/openspec/changes/archive/2026-06-11-map-context-retrieval/apply-progress.md new file mode 100644 index 0000000..bb2b923 --- /dev/null +++ b/openspec/changes/archive/2026-06-11-map-context-retrieval/apply-progress.md @@ -0,0 +1,10 @@ +# Apply Progress + +Status: complete + +Summary: Implemented deterministic index-first context retrieval via tool and CLI, plus retrieval docs/skill guidance. + +Implemented commits: +- c6064f8 Implement layered maps and context retrieval + +Stale-checkbox reconciliation: historical implementation completed in committed work above; tasks.md reconciled to checked state on 2026-06-11. diff --git a/openspec/changes/archive/2026-06-11-map-context-retrieval/archive-report.md b/openspec/changes/archive/2026-06-11-map-context-retrieval/archive-report.md new file mode 100644 index 0000000..cca939d --- /dev/null +++ b/openspec/changes/archive/2026-06-11-map-context-retrieval/archive-report.md @@ -0,0 +1,9 @@ +# Archive Report + +Status: archived + +Archived path: openspec/changes/archive/2026-06-11-map-context-retrieval + +Archive mode: manual archive fallback in openspec-only repo with legacy flat change specs; canonical sync marked not-applicable in sync-report.md. + +Inputs preserved in archive: proposal.md, spec.md, design.md, tasks.md, apply-progress.md, verify-report.md, sync-report.md. diff --git a/openspec/changes/map-context-retrieval/design.md b/openspec/changes/archive/2026-06-11-map-context-retrieval/design.md similarity index 100% rename from openspec/changes/map-context-retrieval/design.md rename to openspec/changes/archive/2026-06-11-map-context-retrieval/design.md diff --git a/openspec/changes/map-context-retrieval/proposal.md b/openspec/changes/archive/2026-06-11-map-context-retrieval/proposal.md similarity index 100% rename from openspec/changes/map-context-retrieval/proposal.md rename to openspec/changes/archive/2026-06-11-map-context-retrieval/proposal.md diff --git a/openspec/changes/map-context-retrieval/spec.md b/openspec/changes/archive/2026-06-11-map-context-retrieval/spec.md similarity index 100% rename from openspec/changes/map-context-retrieval/spec.md rename to openspec/changes/archive/2026-06-11-map-context-retrieval/spec.md diff --git a/openspec/changes/archive/2026-06-11-map-context-retrieval/sync-report.md b/openspec/changes/archive/2026-06-11-map-context-retrieval/sync-report.md new file mode 100644 index 0000000..6ff286b --- /dev/null +++ b/openspec/changes/archive/2026-06-11-map-context-retrieval/sync-report.md @@ -0,0 +1,7 @@ +# Sync Report + +Status: NOT-APPLICABLE + +Reason: This repository uses legacy flat change artifacts (proposal.md/spec.md/design.md/tasks.md) and does not maintain a canonical openspec/specs/ tree for these changes. No canonical spec sync was performed. + +User-approved fallback: archive completed change as an audit record without canonical spec sync. diff --git a/openspec/changes/map-context-retrieval/tasks.md b/openspec/changes/archive/2026-06-11-map-context-retrieval/tasks.md similarity index 72% rename from openspec/changes/map-context-retrieval/tasks.md rename to openspec/changes/archive/2026-06-11-map-context-retrieval/tasks.md index 0d0f3ac..c7cc6e3 100644 --- a/openspec/changes/map-context-retrieval/tasks.md +++ b/openspec/changes/archive/2026-06-11-map-context-retrieval/tasks.md @@ -20,13 +20,13 @@ 8. [ ] Update docs and skill guidance for retrieval usage ## Acceptance checklist -- [ ] Tool works for natural-language queries via `query` -- [ ] Output includes relevant indexes, strongest-match maps, likely files, symbols when useful, and instructions -- [ ] Retrieval depends on paired metadata rather than raw source scanning -- [ ] Ranking follows the index-first routing model with a top-3 default -- [ ] `npm run typecheck` passes -- [ ] `npm test` passes -- [ ] `npm run lint` passes +- [x] Tool works for natural-language queries via `query` +- [x] Output includes relevant indexes, strongest-match maps, likely files, symbols when useful, and instructions +- [x] Retrieval depends on paired metadata rather than raw source scanning +- [x] Ranking follows the index-first routing model with a top-3 default +- [x] `npm run typecheck` passes +- [x] `npm test` passes +- [x] `npm run lint` passes *(N/A: repo has no ESLint config; pre-existing repository gap, not a change regression)* ## Sequencing note This change is intentionally follow-up work. It should start after the layered map protocol produces reliable paired routing metadata. diff --git a/openspec/changes/archive/2026-06-11-map-context-retrieval/verify-report.md b/openspec/changes/archive/2026-06-11-map-context-retrieval/verify-report.md new file mode 100644 index 0000000..4654c03 --- /dev/null +++ b/openspec/changes/archive/2026-06-11-map-context-retrieval/verify-report.md @@ -0,0 +1,23 @@ +# Verify Report + +Status: PASS + +Change: map-context-retrieval + +Verified summary: Implemented deterministic index-first context retrieval via tool and CLI, plus retrieval docs/skill guidance. + +Evidence commands: +- npm run typecheck +- npx vitest run +- npm run build +- node dist/cli.js context "validation routing" +- node dist/cli.js validate . + +Current validation state: +- npm run typecheck: PASS +- npx vitest run: PASS (262/262) +- npm run build: PASS +- node dist/cli.js validate .: PASS + +Notes: +- Repo-wide lint remains unavailable because the repository has no ESLint config; treated as a pre-existing repository-level gap, not a change regression. diff --git a/openspec/changes/archive/2026-06-11-project-map-prompt-injection/apply-progress.md b/openspec/changes/archive/2026-06-11-project-map-prompt-injection/apply-progress.md new file mode 100644 index 0000000..e3a174e --- /dev/null +++ b/openspec/changes/archive/2026-06-11-project-map-prompt-injection/apply-progress.md @@ -0,0 +1,15 @@ +# Apply Progress + +Status: complete + +Summary: Implemented prompt-injection slices 1-5: mode/config surface, root-pair preload, reinjection/dedupe, strict/advisory/strong/off semantics, and documentation/runtime alignment. + +Implemented commits: +- 56560d9 feat(prompt): implement prompt injection slice 1 +- 621434b feat(prompt): implement prompt injection slice 2 +- 19666c9 feat(prompt): implement prompt injection slice 3 +- 58e8bd3 feat(prompt): implement prompt injection slice 4 +- 11365fa docs(prompt): align prompt injection guidance and runtime copy +- c11d49d spec(prompt): add project map prompt injection change set + +Stale-checkbox reconciliation: historical implementation completed in committed work above; tasks.md reconciled to checked state on 2026-06-11. diff --git a/openspec/changes/archive/2026-06-11-project-map-prompt-injection/archive-report.md b/openspec/changes/archive/2026-06-11-project-map-prompt-injection/archive-report.md new file mode 100644 index 0000000..d74dc98 --- /dev/null +++ b/openspec/changes/archive/2026-06-11-project-map-prompt-injection/archive-report.md @@ -0,0 +1,9 @@ +# Archive Report + +Status: archived + +Archived path: openspec/changes/archive/2026-06-11-project-map-prompt-injection + +Archive mode: manual archive fallback in openspec-only repo with legacy flat change specs; canonical sync marked not-applicable in sync-report.md. + +Inputs preserved in archive: proposal.md, spec.md, design.md, tasks.md, apply-progress.md, verify-report.md, sync-report.md. diff --git a/openspec/changes/project-map-prompt-injection/design.md b/openspec/changes/archive/2026-06-11-project-map-prompt-injection/design.md similarity index 100% rename from openspec/changes/project-map-prompt-injection/design.md rename to openspec/changes/archive/2026-06-11-project-map-prompt-injection/design.md diff --git a/openspec/changes/project-map-prompt-injection/proposal.md b/openspec/changes/archive/2026-06-11-project-map-prompt-injection/proposal.md similarity index 100% rename from openspec/changes/project-map-prompt-injection/proposal.md rename to openspec/changes/archive/2026-06-11-project-map-prompt-injection/proposal.md diff --git a/openspec/changes/project-map-prompt-injection/spec.md b/openspec/changes/archive/2026-06-11-project-map-prompt-injection/spec.md similarity index 100% rename from openspec/changes/project-map-prompt-injection/spec.md rename to openspec/changes/archive/2026-06-11-project-map-prompt-injection/spec.md diff --git a/openspec/changes/archive/2026-06-11-project-map-prompt-injection/sync-report.md b/openspec/changes/archive/2026-06-11-project-map-prompt-injection/sync-report.md new file mode 100644 index 0000000..6ff286b --- /dev/null +++ b/openspec/changes/archive/2026-06-11-project-map-prompt-injection/sync-report.md @@ -0,0 +1,7 @@ +# Sync Report + +Status: NOT-APPLICABLE + +Reason: This repository uses legacy flat change artifacts (proposal.md/spec.md/design.md/tasks.md) and does not maintain a canonical openspec/specs/ tree for these changes. No canonical spec sync was performed. + +User-approved fallback: archive completed change as an audit record without canonical spec sync. diff --git a/openspec/changes/project-map-prompt-injection/tasks.md b/openspec/changes/archive/2026-06-11-project-map-prompt-injection/tasks.md similarity index 83% rename from openspec/changes/project-map-prompt-injection/tasks.md rename to openspec/changes/archive/2026-06-11-project-map-prompt-injection/tasks.md index acbea66..88516f9 100644 --- a/openspec/changes/project-map-prompt-injection/tasks.md +++ b/openspec/changes/archive/2026-06-11-project-map-prompt-injection/tasks.md @@ -71,20 +71,20 @@ ## Acceptance checklist -- [ ] Before init, only a lightweight `project_map_init` hint is injected -- [ ] No synthetic map/index artifact content is injected before init -- [ ] After init, root `.pi-map.index.md` and root `.pi-map.md` are always guaranteed before budgeted expansion -- [ ] Expansion uses a hybrid cap with both relative and absolute knobs, smaller effective budget wins -- [ ] Default budget is 15% of active context window, capped at 100k tokens -- [ ] Reinjection avoidance is based on canonical marker scanning in actual outgoing context -- [ ] `strong` checks only relevant turns, not every trivial turn -- [ ] Modes `off`, `advisory`, `strong`, and `strict` are implemented with the agreed semantics -- [ ] Mixed visibility behavior is preserved -- [ ] Retrieval behavior remains separate from this spec’s implementation scope -- [ ] Extensive integration tests validate context scanning and reinjection behavior -- [ ] `npm run typecheck` passes -- [ ] `npm test` passes -- [ ] `npm run lint` passes +- [x] Before init, only a lightweight `project_map_init` hint is injected +- [x] No synthetic map/index artifact content is injected before init +- [x] After init, root `.pi-map.index.md` and root `.pi-map.md` are always guaranteed before budgeted expansion +- [x] Expansion uses a hybrid cap with both relative and absolute knobs, smaller effective budget wins +- [x] Default budget is 15% of active context window, capped at 100k tokens +- [x] Reinjection avoidance is based on canonical marker scanning in actual outgoing context +- [x] `strong` checks only relevant turns, not every trivial turn +- [x] Modes `off`, `advisory`, `strong`, and `strict` are implemented with the agreed semantics +- [x] Mixed visibility behavior is preserved +- [x] Retrieval behavior remains separate from this spec’s implementation scope +- [x] Extensive integration tests validate context scanning and reinjection behavior +- [x] `npm run typecheck` passes +- [x] `npm test` passes +- [x] `npm run lint` passes *(N/A: repo has no ESLint config; pre-existing repository gap, not a change regression)* ## Review workload note This change mixes runtime hook behavior, prompt budgeting, context dedupe, visibility policy, and strict-mode enforcement. Keep delivery narrow and test-heavy. Avoid collapsing this into one oversized implementation slice. diff --git a/openspec/changes/archive/2026-06-11-project-map-prompt-injection/verify-report.md b/openspec/changes/archive/2026-06-11-project-map-prompt-injection/verify-report.md new file mode 100644 index 0000000..e3a81b9 --- /dev/null +++ b/openspec/changes/archive/2026-06-11-project-map-prompt-injection/verify-report.md @@ -0,0 +1,22 @@ +# Verify Report + +Status: PASS + +Change: project-map-prompt-injection + +Verified summary: Implemented prompt-injection slices 1-5: mode/config surface, root-pair preload, reinjection/dedupe, strict/advisory/strong/off semantics, and documentation/runtime alignment. + +Evidence commands: +- npm run typecheck +- npx vitest run +- npm run build +- node dist/cli.js validate . + +Current validation state: +- npm run typecheck: PASS +- npx vitest run: PASS (262/262) +- npm run build: PASS +- node dist/cli.js validate .: PASS + +Notes: +- Repo-wide lint remains unavailable because the repository has no ESLint config; treated as a pre-existing repository-level gap, not a change regression.