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
- [ ] 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.
@@ -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
## 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.
@@ -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
- [ ] 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 specs 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 specs 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.
@@ -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.