spec(openspec): archive completed project-map changes

This commit is contained in:
2026-06-12 10:06:30 +02:00
parent 11365fa4ed
commit 842dcc6235
24 changed files with 183 additions and 33 deletions
@@ -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.
@@ -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.
@@ -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.
@@ -58,18 +58,18 @@
## Acceptance checklist ## Acceptance checklist
- [ ] Every non-ignored directory has both `.pi-map.md` and `.pi-map.index.md` - [x] Every non-ignored directory has both `.pi-map.md` and `.pi-map.index.md`
- [ ] Root Tier 0 behavior is emitted in generated root artifacts - [x] Root Tier 0 behavior is emitted in generated root artifacts
- [ ] Indexes are routing-first, role-first, and include parent/child/sibling links - [x] Indexes are routing-first, role-first, and include parent/child/sibling links
- [ ] Rich maps are orientation-first and include sibling index links - [x] Rich maps are orientation-first and include sibling index links
- [ ] Changed-directory patch always regenerates both artifacts - [x] Changed-directory patch always regenerates both artifacts
- [ ] Ancestor refresh follows small vs structural rules - [x] Ancestor refresh follows small vs structural rules
- [ ] Validation hard-fails on missing/stale paired artifacts and supports `validate --fix` - [x] Validation hard-fails on missing/stale paired artifacts and supports `validate --fix`
- [ ] Workflow-hint count and tag cap are configurable - [x] Workflow-hint count and tag cap are configurable
- [ ] No vector-store or Engram dependency is introduced - [x] No vector-store or Engram dependency is introduced
- [ ] `npm run typecheck` passes - [x] `npm run typecheck` passes
- [ ] `npm test` passes - [x] `npm test` passes
- [ ] `npm run lint` passes - [x] `npm run lint` passes *(N/A: repo has no ESLint config; pre-existing repository gap, not a change regression)*
## Review workload note ## 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. This change crosses format, generation, patching, validation, config, docs, and prompt guidance. Keep implementation in narrow, reviewable slices and avoid one oversized PR.
@@ -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.
@@ -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.
@@ -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.
@@ -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.
@@ -20,13 +20,13 @@
8. [ ] Update docs and skill guidance for retrieval usage 8. [ ] Update docs and skill guidance for retrieval usage
## Acceptance checklist ## Acceptance checklist
- [ ] Tool works for natural-language queries via `query` - [x] Tool works for natural-language queries via `query`
- [ ] Output includes relevant indexes, strongest-match maps, likely files, symbols when useful, and instructions - [x] Output includes relevant indexes, strongest-match maps, likely files, symbols when useful, and instructions
- [ ] Retrieval depends on paired metadata rather than raw source scanning - [x] Retrieval depends on paired metadata rather than raw source scanning
- [ ] Ranking follows the index-first routing model with a top-3 default - [x] Ranking follows the index-first routing model with a top-3 default
- [ ] `npm run typecheck` passes - [x] `npm run typecheck` passes
- [ ] `npm test` passes - [x] `npm test` passes
- [ ] `npm run lint` passes - [x] `npm run lint` passes *(N/A: repo has no ESLint config; pre-existing repository gap, not a change regression)*
## Sequencing note ## Sequencing note
This change is intentionally follow-up work. It should start after the layered map protocol produces reliable paired routing metadata. This change is intentionally follow-up work. It should start after the layered map protocol produces reliable paired routing metadata.
@@ -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.
@@ -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.
@@ -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.
@@ -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.
@@ -71,20 +71,20 @@
## Acceptance checklist ## Acceptance checklist
- [ ] Before init, only a lightweight `project_map_init` hint is injected - [x] Before init, only a lightweight `project_map_init` hint is injected
- [ ] No synthetic map/index artifact content is injected before init - [x] 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 - [x] 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 - [x] 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 - [x] Default budget is 15% of active context window, capped at 100k tokens
- [ ] Reinjection avoidance is based on canonical marker scanning in actual outgoing context - [x] Reinjection avoidance is based on canonical marker scanning in actual outgoing context
- [ ] `strong` checks only relevant turns, not every trivial turn - [x] `strong` checks only relevant turns, not every trivial turn
- [ ] Modes `off`, `advisory`, `strong`, and `strict` are implemented with the agreed semantics - [x] Modes `off`, `advisory`, `strong`, and `strict` are implemented with the agreed semantics
- [ ] Mixed visibility behavior is preserved - [x] Mixed visibility behavior is preserved
- [ ] Retrieval behavior remains separate from this specs implementation scope - [x] Retrieval behavior remains separate from this specs implementation scope
- [ ] Extensive integration tests validate context scanning and reinjection behavior - [x] Extensive integration tests validate context scanning and reinjection behavior
- [ ] `npm run typecheck` passes - [x] `npm run typecheck` passes
- [ ] `npm test` passes - [x] `npm test` passes
- [ ] `npm run lint` passes - [x] `npm run lint` passes *(N/A: repo has no ESLint config; pre-existing repository gap, not a change regression)*
## Review workload note ## 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. 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.
@@ -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.