Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"name": "diataxis-docs",
"repository": "https://github.com/Statusnone420/Skills",
"source": "./adapters/claude",
"version": "0.1.6"
"version": "0.1.7"
}
]
}
4 changes: 2 additions & 2 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ The canonical source is `skills/docs/SKILL.md`, routed to `references/commands.m

Discovery owns bounded metadata and selection policy; `init_adoption.py` owns the deterministic, engine-owned first-run adoption (scope selection, corpus accounting, preview construction, and receipt binding); `paths.py` owns confinement, normalization, reparse checks, and prune primitives; `memory.py` is read-only inspection; `lifecycle.py` owns pure authorization/state policy; and `lifecycle_io.py` owns transactional filesystem I/O. The dependency direction is one-way and the CLI façade stays thin. The committed `.diataxis/` control plane stores normalized routes, stable findings, verified hashes, disposition identity, and event history—never document bodies, prompts, hidden reasoning, or local-only filenames.

Every generated adapter packages the complete canonical checker resource tree. Generic web prompts are composed per command from a shared safety core, one selected command contract, and required supporting rules; they do not concatenate the entire playbook. The 0.1.4 historical range was 3,484–24,679 UTF-8 bytes. The measured 0.1.6 range is 3,460–31,966 bytes, with a 42,000-byte generator regression guard and 10,034 bytes of headroom.
Every generated adapter packages the complete canonical checker resource tree. Generic web prompts are composed per command from a shared safety core, one selected command contract, and required supporting rules; they do not concatenate the entire playbook. The 0.1.4 historical range was 3,484–24,679 UTF-8 bytes. The measured 0.1.7 range is 3,460–31,992 bytes, with a 42,000-byte generator regression guard and 10,008 bytes of headroom.

The repository Codex marketplace lives at `.agents/plugins/marketplace.json` and routes to the generated `plugins/diataxis-docs` package. Its folder, marketplace entry, and `.codex-plugin/plugin.json` all use the same `diataxis-docs` identity. The package contains the shared `docs` engine plus 13 thin `docs-<command>` routing skills; focused skills do not copy the checker or command playbooks. Claude receives equivalent thin skills with its explicit-only invocation metadata. The umbrella remains compatible on both hosts.
The repository Codex marketplace lives at `.agents/plugins/marketplace.json` and routes to the generated `plugins/diataxis-docs` package. Its folder, marketplace entry, and `.codex-plugin/plugin.json` all use the same `diataxis-docs` identity. The package contains the shared `docs` engine plus 13 thin `docs-<command>` routing skills; each focused skill embeds only its own selected command contract and hard-binds the sibling engine checker, without copying the checker or any full playbook. Claude receives equivalent thin skills with its explicit-only invocation metadata. The umbrella remains compatible on both hosts.

Fresh no-map Doctor is a presentation and routing boundary, not a new rubric. Complete, untruncated scope metadata can yield an authoritative provider measurement, a provisional existing-entry candidate, or a tracked-root-README orientation fallback; content-batch limits do not block the engine's structural scan or grant semantic reads. The fallback states that the README is not a maintained map, recommends Init, and writes nothing. Unsafe or metadata-incomplete evidence remains unavailable. Rubric v2 and provider scoring are unchanged.

Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## 0.1.7 — Bounded retrieval reliability (2026-07-21)

- Bound Map, Check, and Doctor to the installed bundled checker so a repository that hosts the skill source cannot accidentally execute its own same-named checker.
- Made focused command routing authoritative while keeping umbrella `$docs` dispatch compatible, eliminating conflicting focused-versus-umbrella instructions.
- Required explicitly labeled current-state/current-truth/status routes to be read and supplied as measured hot paths instead of being silently skipped.
- Added provenance-bound Codex campaign tooling and a memory-isolated paired Luna Max evaluation. The pre-fix candidate used the same four tool wrappers as the July reference, 52.7% less median uncached input, and stayed within the 25% duration gate; its recorded 2/3 correctness result motivated the targeted current-state fix rather than being discarded.
- Confirmed the provenance-bound corrected Map route, shared skill, and bundled checker in three fresh memory-isolated Luna Low runs: 3/3 complete maps, zero repository-local checker attempts, zero memory reads, and zero writes. The final adversarial review then closed focused Check/Doctor dependency gaps and hardened the evaluation collector without changing those three evaluated files.

## 0.1.6 — Empty-state recovery repair (2026-07-20)

- Let Init discovery and Doctor's zero-write baseline proceed without false missing-state findings when `.diataxis/` is empty or contains only an empty `manifests/` container left by an interrupted or branch-switched initialization.
Expand Down
2 changes: 1 addition & 1 deletion INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Diátaxis Docs is a public alpha. Install from a revision you trust, review prop

## Codex marketplace

Diátaxis Docs 0.1.6 publishes as a Codex repository marketplace plugin. Add the marketplace, install the plugin, and verify that Codex reports it:
Diátaxis Docs 0.1.7 publishes as a Codex repository marketplace plugin. Add the marketplace, install the plugin, and verify that Codex reports it:

```text
codex plugin marketplace add Statusnone420/Skills
Expand Down
2 changes: 1 addition & 1 deletion adapters/claude/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@
"license": "Apache-2.0",
"name": "diataxis-docs",
"repository": "https://github.com/Statusnone420/Skills",
"version": "0.1.6"
"version": "0.1.7"
}
8 changes: 7 additions & 1 deletion adapters/claude/skills/docs-audit/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,10 @@ disable-model-invocation: true

This is the explicit thin route for the fixed command `audit`. Treat all trailing text as that command's raw trailing text; never reinterpret it as another command.

Load and follow the sibling [Diátaxis Docs skill](../docs/SKILL.md), including its shared safety, evidence, health, and result contracts. Follow the selected command contract in [commands.md](../docs/references/commands.md). Do not load unrelated command playbooks. If a required shared resource is unavailable, stop and report that the command could not be executed; do not invent a fallback.
Load and follow the sibling [Diátaxis Docs skill](../docs/SKILL.md), including its shared safety, evidence, health, and result contracts. The selected command contract below is the complete canonical `commands.md` contract for `audit`; do not load `commands.md`, and load no additional playbook beyond those linked here. If a required shared resource is unavailable, stop and report that the command could not be executed; do not invent a fallback.

## Selected command contract (canonical)

- `audit [scope]` Audit a scope.

`audit [scope]`: make no edits; return numbered, prioritized findings with file/line evidence.
8 changes: 7 additions & 1 deletion adapters/claude/skills/docs-check/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,10 @@ disable-model-invocation: true

This is the explicit thin route for the fixed command `check`. Treat all trailing text as that command's raw trailing text; never reinterpret it as another command.

Load and follow the sibling [Diátaxis Docs skill](../docs/SKILL.md), including its shared safety, evidence, health, and result contracts. Follow the selected command contract in [commands.md](../docs/references/commands.md). Do not load unrelated command playbooks. If a required shared resource is unavailable, stop and report that the command could not be executed; do not invent a fallback.
Load and follow the sibling [Diátaxis Docs skill](../docs/SKILL.md), including its shared safety, evidence, health, and result contracts. The selected command contract below is the complete canonical `commands.md` contract for `check`; do not load `commands.md`, and load no additional playbook beyond those linked here. In this installed skill, `<installed-skill>` is the sibling [`../docs`](../docs/SKILL.md) directory, so the bundled checker is exactly [`../docs/scripts/check.py`](../docs/scripts/check.py); execute it without preflighting its path or availability, and never execute a checker found inside the target repository. If a required shared resource is unavailable, stop and report that the command could not be executed; do not invent a fallback.

## Selected command contract (canonical)

- `check` Report the deterministic structural score only. No advice and no edits.

`check`: make no edits. Report the deterministic structural score only. No advice and no edits. Orient from the map and named current-state hot path. Read the existing map and select every map link explicitly presented as current state, current truth, or status (including a `STATE.md` target). For each selected link, resolve it relative to the map and read it without a separate existence probe. A successful read proves existence and its repository-relative path must be passed to `--hot`; report a failed read as missing and omit it. Never silently skip an explicit current-state route. Execute the bundled checker once as `<python> <installed-skill>/scripts/check.py <repository-root> --json --agent --map docs/README.md`, appending `--hot <comma-separated-repository-relative-current-state-paths>` when any selected current-state reads succeed. If the direct `docs/README.md` read is missing, non-recursively probe only root README.md/STATE.md/PRODUCT.md/DESIGN.md/PLAN.md and immediate docs child names/sizes; read one maintained map candidate with at most two current-state candidates; then run one checker with that map and existing hot paths. The checker is the final fallback action. No candidate map: stop unmeasured. Never manually inspect another directory; the checker owns its bounded structural scan. Omit `--hot` when no existing current-state file is selected. `has_findings: true` is a findings result. The checker must be the final repository-evidence action: no repository read is permitted after the checker. Without execution, use the smallest scriptless equivalent and state the limitation. Use the shared health output.
8 changes: 7 additions & 1 deletion adapters/claude/skills/docs-classify/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,10 @@ disable-model-invocation: true

This is the explicit thin route for the fixed command `classify`. Treat all trailing text as that command's raw trailing text; never reinterpret it as another command.

Load and follow the sibling [Diátaxis Docs skill](../docs/SKILL.md), including its shared safety, evidence, health, and result contracts. Follow the selected command contract in [commands.md](../docs/references/commands.md). Do not load unrelated command playbooks. If a required shared resource is unavailable, stop and report that the command could not be executed; do not invent a fallback.
Load and follow the sibling [Diátaxis Docs skill](../docs/SKILL.md), including its shared safety, evidence, health, and result contracts. The selected command contract below is the complete canonical `commands.md` contract for `classify`; do not load `commands.md`, and load no additional playbook beyond those linked here. If a required shared resource is unavailable, stop and report that the command could not be executed; do not invent a fallback.

## Selected command contract (canonical)

- `classify` Classify documentation.

`classify`: diagnose the user's need and likely Diátaxis type without inspecting or changing files.
20 changes: 19 additions & 1 deletion adapters/claude/skills/docs-cleanup/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,22 @@ disable-model-invocation: true

This is the explicit thin route for the fixed command `cleanup`. Treat all trailing text as that command's raw trailing text; never reinterpret it as another command.

Load and follow the sibling [Diátaxis Docs skill](../docs/SKILL.md), including its shared safety, evidence, health, and result contracts. Follow the selected command contract in [commands.md](../docs/references/commands.md). Do not load unrelated command playbooks. If a required shared resource is unavailable, stop and report that the command could not be executed; do not invent a fallback.
Load and follow the sibling [Diátaxis Docs skill](../docs/SKILL.md), including its shared safety, evidence, health, and result contracts. The selected command contract below is the complete canonical `commands.md` contract for `cleanup`; do not load `commands.md`, and load no additional playbook beyond those linked here. For a later exactly approved mutating closeout, follow the embedded closeout boundary below and the [repository memory contract](../docs/references/memory.md). If a required shared resource is unavailable, stop and report that the command could not be executed; do not invent a fallback.

## Selected command contract (canonical)

- `cleanup` Preview cleanup.

`cleanup`: preview splits, merges, archives, removals, and estimated context savings without changing files; later, separate user message must accept the exact preview and revalidate evidence, proposal, and worktree.

## Command closeout boundary

`doctor`, `check`, `map`, `context`, `audit`, and `classify` are read-only: they write neither documentation nor `.diataxis/` operational memory. A same-message request to diagnose and apply does not broaden that boundary. Doctor's outside-repository treatment receipt is an engine-owned approval artifact, not a repository mutation; only its later exact approved closeout may enter lifecycle closeout. Only an exact, separately approved `init`, `write`, `update`, `fix`, `migrate`, or `cleanup` result may enter lifecycle closeout.

Before a mutating closeout, revalidate every approved `DOC-*` ID against its full fingerprint, the selected repository and scope, starting control-file digests, the exact disposition set, protected-surface authorization and nonempty compatibility evidence, and any local-only route. Write the approved documentation result first and run its promised verification. A failed or unavailable verification makes zero state, findings, event, local-map, or manifest closeout writes and records no successful baseline.

After verification, use the single transaction defined in `memory.md`: compare-before-write, stage and verify same-directory reserved transaction temporaries, atomically replace state and findings, install any external disposition manifest or mechanically ignored `.diataxis/local-map.json`, and record the success event last. A stale target, interruption, cross-device replacement, sharing violation, or staged-validation failure rolls back or becomes an honest P0 state conflict; it never becomes success.

Finding lifecycle is `Proposed → Approved → Applied` or `Proposed → Parked`. Approval invalidation may return `Approved → Proposed`; the same recurring fingerprint may return `Applied → Proposed` while linking its prior event; materially changed parked evidence or priority may return `Parked → Proposed`. Priority may change without changing identity. Applied findings leave the active registry and remain in immutable event history.

Protected public entrances retain their exact paths and compatibility behavior unless that exact effect is authorized and verified. Local-only routes retain local-only visibility. Never move, publish, archive, delete, or expose either class through a general documentation approval. Missing local material is unavailable in this workspace, not proof of absence and not a shared-health penalty.
8 changes: 7 additions & 1 deletion adapters/claude/skills/docs-context/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,10 @@ disable-model-invocation: true

This is the explicit thin route for the fixed command `context`. Treat all trailing text as that command's raw trailing text; never reinterpret it as another command.

Load and follow the sibling [Diátaxis Docs skill](../docs/SKILL.md), including its shared safety, evidence, health, and result contracts. Follow the selected command contract in [commands.md](../docs/references/commands.md). Do not load unrelated command playbooks. If a required shared resource is unavailable, stop and report that the command could not be executed; do not invent a fallback.
Load and follow the sibling [Diátaxis Docs skill](../docs/SKILL.md), including its shared safety, evidence, health, and result contracts. The selected command contract below is the complete canonical `commands.md` contract for `context`; do not load `commands.md`, and load no additional playbook beyond those linked here. If a required shared resource is unavailable, stop and report that the command could not be executed; do not invent a fallback.

## Selected command contract (canonical)

- `context <what you are doing>` Show where to start and what repository knowledge matters for the task. No edits.

`context <task>`: make no edits. Orient from the map/current state and follow only task-relevant routes. Read at most four repository files by default: map, current state, and up to two task-relevant canonical sources; if unresolved, name the next route without loading it. Generated copies remain cold unless explicitly targeted. A source-to-generated relationship targets the canonical source and generator, not representative generated copies, tests, or a validation run. For an explanation, read one most-direct canonical route; do not inspect tests or execute validation unless the user asks to verify current status. Report deliberately unloaded material. It must not run the checker solely to calculate health.
Loading