Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
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.3"
"version": "0.1.4"
}
]
}
2 changes: 2 additions & 0 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ The canonical source is `skills/docs/SKILL.md`, routed to `references/commands.m

`skills/docs/scripts/check.py` is an optional network-free orchestration façade over cohesive `_docs_checker` modules. The checker confines paths to the repository, rejects reparse points, treats `.md`, `.markdown`, and `.mdx` as one inert document policy, selects one bounded navigation surface, resolves the supported Mintlify provider contract from the manifest's actual parent, uses tracked authority when Git visibility exists, parses Markdown links and anchors, reports unreachable pages and duplicate titles, evaluates state-declared hash freshness and Trust coverage, and reports provenance-tagged map/current-state bytes. Malformed, unsafe, ambiguous, or unsupported provider surfaces are unmeasured without a fallback score. The deterministic surface result is shared by Map, Check, Doctor, Audit, and Init; Init binds provider facts, provider findings, and the authority digest into preview/apply revalidation for both Git and non-Git repositories. Semantic model findings remain a labeled ceiling above provider facts. The 16,384-byte value is only `provisional_target_bytes`, not an enforced budget, health input, or deletion mandate.

`_docs_checker/evidence.py` owns sanitized evidence receipt v1. It copies existing deterministic health output without recalculating it, preserves category raw/earned/available values and score gates, and keeps deterministic, semantic, unresolved, Doctor, write, Git, and unavailable evidence in separate typed lanes. `evidence_receipt.py` is a stdout-first façade. The corpus preparation tool writes only newly owned, ignored sparse checkouts; the separate corpus runner requires clean detached exact commits, reads configuration as bounded bytes, executes no documentation or provider code, and proves target Git state is unchanged.

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 observed prompt range is 3,484–24,679 UTF-8 bytes, with a 40,000-byte generator regression guard selected after measurement and 15,321 bytes of headroom.
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.4 — Evidence and calibration foundation (2026-07-17)

- Added a strict sanitized evidence receipt that preserves category-level rubric inputs, score gates, deterministic findings, semantic findings, unresolved candidates, Doctor evidence, Git/write state, and explicit unavailable values.
- Preserved the sanitized 0.1.3 Cline dogfood baseline without accessing raw session data or inventing missing commit, category, treatment, or approval evidence.
- Added a six-repository, commit-pinned documentation corpus with non-destructive sparse acquisition and a read-only runner that records supported Mintlify measurements and inert unsupported-provider evidence.
- Added provider-neutral literal-H1 and frontmatter-title observations without changing rubric v2, `HEALTH_WEIGHTS`, useful-entry gating, or provider scoring.
- Kept external models and APIs optional: deterministic receipts and corpus evidence remain local, standard-library based, and network-free after explicit corpus acquisition.

## 0.1.3 — Deterministic navigation surfaces (2026-07-17)

- Unified `.md`, `.markdown`, and `.mdx` under one inert, vendor-neutral structural policy without executing MDX or component code.
Expand Down
8 changes: 8 additions & 0 deletions EVALUATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,14 @@ State-declared verified document/source routes use newline- and NFC-normalized S

Route tests use generated one-change mutations, invariant checks, deterministic cases, and retained named regressions. This applies Hypothesis/property-based testing ideas without adding Hypothesis, copying its source, or adding any runtime dependency.

## Evidence receipt and documentation corpus v1

Evidence receipt v1 is a sanitized product-evidence contract, not a transcript format. It records repository and checker identity, selected-surface facts, category-level rubric evidence, score gates, deterministic findings, semantic findings, unresolved candidates, Doctor evidence, Git/write state, and a complete index of unavailable evidence. `completed` with zero semantic findings is distinct from `not_assessed`; unavailable values are null and never become a product failure or numeric zero.

The calibration corpus pins Cline, Supabase, Docusaurus, Vite, uv, and Kubernetes Website to immutable commits. Explicit preparation creates sparse ignored checkouts without dependencies or site builds. The runner then requires each checkout to be clean, detached, and at the exact commit; hashes bounded configuration bytes and reads inert entry text; and verifies Git status is unchanged. Only the existing Mintlify contract produces a structural score. Custom MDX, Docusaurus, VitePress, MkDocs, and Hugo evidence remains deterministic but structurally `not_assessed` until an inert provider contract exists.

Literal H1 and scalar frontmatter-title observations are collected for calibration but do not affect rubric v2. The corpus baseline is evidence for a later scoring decision, not permission to tune `HEALTH_WEIGHTS`, useful-entry gating, or provider behavior in this release. No external model or API is required; an optional semantic lane must record its evaluator and cannot calculate or change the deterministic score.

## Shared-engine dogfood

Fresh isolated Codex agents ran the same canonical skill against the same repository state on Windows 11 on 2026-07-11:
Expand Down
19 changes: 19 additions & 0 deletions TESTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ flowchart LR
J["Selected-surface engine"] --> K["Markdown map or bounded Mintlify provider"]
K --> I
L["Malformed or unsupported provider input"] --> M["Unmeasured, fail closed"]
N["Pinned corpus manifest"] --> O["Read-only corpus runner"]
O --> P["Sanitized evidence receipt v1"]
```

## Commands
Expand All @@ -40,6 +42,21 @@ python -B tools/run_tests.py list
python -B tools/run_tests.py verify
```

Validate the receipt and corpus harness with local fixtures:

```text
python -B -m unittest -v tests.test_docs_evidence
```

Public corpus acquisition is explicit and writes only new ignored checkouts. The runner itself performs no acquisition or target writes:

```text
python -B tools/prepare_docs_corpus.py --manifest evals/docs-corpus-v1.json
python -B tools/run_docs_corpus.py --manifest evals/docs-corpus-v1.json --output evals/docs-corpus-baseline-v1.json
```

Preparation never deletes, updates, or reuses an existing corpus directory. The runner requires the official remote, exact detached commit, clean before/after Git status, and every declared entry/configuration probe. It never installs dependencies, builds sites, or executes MDX, JSX, JavaScript, TypeScript, TOML, YAML, Hugo shortcodes, imports, expressions, or components.

The orchestrator prints each group start and finish, module/test progress from verbose `unittest`, elapsed time, and a heartbeat every 30 seconds while work is still running. `--heartbeat-seconds` changes that interval and `--failfast` stops at the first failure.

## WSL performance
Expand All @@ -58,4 +75,6 @@ Run the Ubuntu proof from a Linux-native checkout under `$HOME`, not directly fr

Provider regressions also prove that Map, Check, Doctor, Audit, and Init use the same selected-surface evidence, including root-manifest authority, root README score isolation, tracked Git visibility, provider findings, and authority-digest Init revalidation on Git and non-Git fixtures. Semantic candidates remain labeled and bounded.

Corpus regressions additionally prove exact pins, inert configuration probes, unsupported-provider `not_assessed` states, orientation evidence that does not affect scoring, and zero target-repository writes. Rubric v2 and its category weights remain the comparison baseline until a separate calibration change is justified.

No valid test may be skipped, deleted, or weakened to pass a gate. A completion claim requires fresh output, a reviewed diff, and explicit separation of change-caused failures from verified pre-existing failures.
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.3"
"version": "0.1.4"
}
2 changes: 1 addition & 1 deletion adapters/claude/skills/docs/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: docs
description: Use when a user explicitly invokes repository documentation help for bounded Diátaxis writing, context recall, mapping, auditing, checking, migration, cleanup, Doctor guidance, or evidence-backed updates.
metadata:
author: Statusnone
version: "0.1.3"
version: "0.1.4"
user-invocable: true
disable-model-invocation: true
---
Expand Down
Loading