Phase 0 of the Dynamic Context Management epic (#1671): the ADR (documentation) plus a non-shipping reference example under examples/dynamic-context-management/ — the Option-E predicate fact-store parser/selector, a self-contained --check/--write/--select index generator, a sample index, and a runnable demo. The example is intentionally excluded from the build (src/->bin/lib/), the npm package files[], the installer, and the CI test suite (tests/) — nothing here is compiled into or installed with GSD. Production implementation lands in a later phase. Resolves #1672 Refs #1671 Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
44
examples/dynamic-context-management/README.md
Normal file
44
examples/dynamic-context-management/README.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# Dynamic context management — Option-E reference example
|
||||
|
||||
Reference example for [ADR-1671](../../docs/adr/1671-dynamic-context-management-platform.md),
|
||||
"Dynamic context management platform."
|
||||
|
||||
> **This is a non-shipping reference example.** It lives outside the build
|
||||
> (`src/` → `bin/lib/`), the npm package `files[]`, the installer, and the CI
|
||||
> test suite (`tests/`). Nothing here is compiled into or installed with GSD.
|
||||
> The production implementation lands in a later phase of the
|
||||
> [Dynamic Context Management epic (#1671)](https://github.com/open-gsd/gsd-core/issues/1671).
|
||||
|
||||
## What it demonstrates
|
||||
|
||||
The **predicate fact-store → JIT selector** slice of the platform: parse the
|
||||
repo-root `CONTEXT.md` `CLASS.subkey=value` predicates into structured records,
|
||||
drift-guard a generated index, and select the relevant predicate subset for a
|
||||
task — the building block for just-in-time agent-brief assembly instead of
|
||||
hand-citing a 200 KB file.
|
||||
|
||||
## Files
|
||||
|
||||
- `context-predicates.cjs` — parser + selector + deterministic index builder (self-contained).
|
||||
- `gen-context-index.cjs` — `--check` / `--write` drift-guarded generator + `--select`.
|
||||
- `CONTEXT-INDEX.json` — sample generated output (393 predicates, 18 classes).
|
||||
- `demo.cjs` — runnable usage example.
|
||||
|
||||
## Run (from the repo root)
|
||||
|
||||
```sh
|
||||
node examples/dynamic-context-management/demo.cjs
|
||||
node examples/dynamic-context-management/gen-context-index.cjs --select PRED.k320
|
||||
node examples/dynamic-context-management/gen-context-index.cjs --check
|
||||
```
|
||||
|
||||
## Validation
|
||||
|
||||
During research this slice was validated with 42 behavioral tests — predicate
|
||||
forms, fenced-code / prose skipping, duplicate-id detection, the selector, a
|
||||
deterministic index, and a fast-check property test. Those return as CI tests
|
||||
under `tests/` when the production implementation lands.
|
||||
|
||||
It also surfaced 3 latent duplicate predicate IDs in `CONTEXT.md`
|
||||
(`RULESET.WORKFLOW_MARKDOWN.FENCES`, `RULESET.GEMINI.TOOLS.ask_user`,
|
||||
`RULESET.GEMINI.TEST_SENTINEL`), recorded in the index `duplicates` field.
|
||||
Reference in New Issue
Block a user