@agentskit/doc-bridge 1.11.1 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -1
- package/README.md +3 -2
- package/action.yml +1 -1
- package/dist/cli/program.js +582 -471
- package/dist/cli/program.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.js +500 -389
- package/dist/index.js.map +1 -1
- package/docs/DESIGN.md +71 -0
- package/docs/MARKETPLACE-ECOSYSTEM-PLAN.md +1 -1
- package/docs/PRD-enterprise-hardening.md +5 -5
- package/docs/PRD-knowledge-retrieval-and-enrichment.md +1 -1
- package/docs/knowledge-engine-runbook.md +1 -1
- package/docs/loop-workflow.md +15 -15
- package/docs/spec/config-v1.md +29 -7
- package/docs/spec/documentation-standard-v1.md +5 -0
- package/docs/spec/mcp-knowledge-tools-v1.md +1 -1
- package/docs/validation-cycle-plan.md +13 -13
- package/ecosystem-claims.json +17 -17
- package/ecosystem-upstream.json +2 -2
- package/ecosystem.json +300 -147
- package/mcpb/manifest.json +1 -1
- package/package.json +2 -1
- package/skills/doc-bridge-handoff/SKILL.md +1 -1
- package/skills/doc-bridge-handoff/scripts/resolve-handoff.mjs +1 -1
- package/src/conformance/ecosystem-contract.ts +10 -26
- package/src/discovery/repository.ts +7 -1
- package/src/findings/report.ts +1 -1
- package/src/fixes/proposals.ts +4 -2
- package/src/gates/run-gates.ts +1 -1
- package/src/index-builder/human-adapters/core.ts +10 -4
- package/src/lib/ignore-filter.ts +151 -0
- package/src/lib/walk.ts +10 -2
- package/src/memory/ingest.ts +1 -1
- package/src/report/html.ts +1 -1
- package/src/safety/repository.ts +9 -0
- package/src/version.ts +1 -1
- package/docs/DOGFOOD-ROUND2.md +0 -147
- package/docs/DOGFOOD-ROUND3.md +0 -79
- package/docs/DOGFOOD-V1.md +0 -89
- package/docs/DOGFOOD.md +0 -97
package/docs/DESIGN.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Doc Bridge Design
|
|
2
|
+
|
|
3
|
+
This guide adapts the AgentsKit homepage visual system to Doc Bridge. The product story remains specific: repository knowledge moves between people and agents, with human review at the boundary. Keep documentation pages calm and readable; homepage effects must never leak into docs or interior routes.
|
|
4
|
+
|
|
5
|
+
## Principles
|
|
6
|
+
|
|
7
|
+
- Use the local AgentsKit home and `agentskit/docs/DESIGN.md` as the source of shared brand decisions.
|
|
8
|
+
- Prefer hierarchy, space, and typography over decorative panels. Use glass only on focused chrome such as the product header, chat, and footer.
|
|
9
|
+
- Make the knowledge handoff visible: source docs → structured context → agent action → reviewable human-owned draft.
|
|
10
|
+
- Lead the home with a three-part map: human documentation sources → Doc Bridge → agent context, with agent memory returning as a reviewable draft.
|
|
11
|
+
- Keep all interface copy in English and state product claims in terms users can verify.
|
|
12
|
+
|
|
13
|
+
## Tokens
|
|
14
|
+
|
|
15
|
+
| Role | Token | Dark value | Use |
|
|
16
|
+
| --- | --- | --- | --- |
|
|
17
|
+
| Canvas | `--ak-bg` | `#0d1117` | Default homepage background |
|
|
18
|
+
| Raised surface | `--ak-surface` | `#161b22` | Code, chat, and handoff surfaces |
|
|
19
|
+
| Border | `--ak-border` | `#30363d` | Dividers and quiet outlines |
|
|
20
|
+
| Foreground | `--ak-fg` | `#e6edf3` | Primary text |
|
|
21
|
+
| Muted | `--ak-muted` | `#8b949e` | Eyebrows and supporting labels |
|
|
22
|
+
| Blue | `--ak-blue` | `#58a6ff` | Links and navigation cues |
|
|
23
|
+
| Green | `--ak-green` | `#2ea043` | Doc Bridge handoff / verified state |
|
|
24
|
+
|
|
25
|
+
Use `--bridge-home-*` aliases in the homepage CSS when a component needs a role-specific name. The imported `brand-tokens.css` is generated; do not edit it directly. Keep the documentation theme independent from homepage-only surface styling.
|
|
26
|
+
|
|
27
|
+
## Type
|
|
28
|
+
|
|
29
|
+
- Use the system sans stack for home display and body text; use `--ak-font-mono` for commands, technical labels, and compact metrics.
|
|
30
|
+
- Headlines use tight tracking and a clear scale; body copy remains comfortable at 16px or larger where it carries explanation.
|
|
31
|
+
- Avoid long all-caps text. Eyebrows are short, muted, and letter-spaced.
|
|
32
|
+
|
|
33
|
+
## Background and glass
|
|
34
|
+
|
|
35
|
+
- Keep one shared near-black canvas across the complete home. Ambient color comes from the shared `<agentskit-aurora>` layer (fixed, `aria-hidden`, no pointer events, honours reduced motion).
|
|
36
|
+
- Use translucent surfaces and backdrop blur for the product header, handoff proof, footer, and chat. Borders should remain visible against both the canvas and surface.
|
|
37
|
+
- Keep ordinary content sections open on the canvas. Avoid a card around every content group or competing colored section backgrounds.
|
|
38
|
+
|
|
39
|
+
## Borders and radii
|
|
40
|
+
|
|
41
|
+
- Use a 24px radius for the primary handoff demonstration and chat window; use 12–16px for compact technical surfaces and controls.
|
|
42
|
+
- Prefer one-pixel neutral borders and restrained separators. Primary actions may use a pill shape; secondary actions stay quiet and outlined.
|
|
43
|
+
|
|
44
|
+
## Motion
|
|
45
|
+
|
|
46
|
+
- Animate the hero map's connectors to show repository knowledge moving toward agents and memory returning to people. Motion must remain subtle, loop slowly, and preserve readable static content.
|
|
47
|
+
- Use short easing for hover/focus transitions. Do not animate documentation content or introduce cursor effects on interior routes.
|
|
48
|
+
- Under `prefers-reduced-motion`, remove ambient cursor motion and stop proof animation without hiding information.
|
|
49
|
+
|
|
50
|
+
## Responsive behavior
|
|
51
|
+
|
|
52
|
+
- Keep the hero map as three clear columns on desktop and stack its human, bridge, and agent areas on mobile. Hide the desktop connector paths on narrow screens and retain a readable static sequence.
|
|
53
|
+
- Collapse principle and flow rows to a single column on narrow screens; keep command blocks horizontally scrollable rather than widening the page.
|
|
54
|
+
- Test narrow mobile widths for clipped copy, controls, and horizontal overflow.
|
|
55
|
+
|
|
56
|
+
## Accessibility
|
|
57
|
+
|
|
58
|
+
- Maintain WCAG AA contrast for normal text and visible keyboard focus for links and controls.
|
|
59
|
+
- Give decorative gradients and motion `aria-hidden`; keep the handoff stages and return path understandable in document order without animation.
|
|
60
|
+
- Honor reduced motion. Preserve usable touch targets and keyboard dismissal for navigation and chat.
|
|
61
|
+
|
|
62
|
+
## Reused components
|
|
63
|
+
|
|
64
|
+
- The ecosystem bar, home tour (`<agentskit-ecosystem current="doc-bridge" data-visual="agentskit-home">`), footer (`<agentskit-footer>` with a static fallback), aurora, and `.ak-product-wordmark` styles come from the hosted AgentsKit shell (`{NEXT_PUBLIC_AGENTSKIT_SHELL_ORIGIN}/shell/v1.css` and `v1.js`, default origin `https://www.agentskit.io`). Nothing shell-related is self-hosted; the GitHub Star action lives only in the bar.
|
|
65
|
+
- Keep the home canvas, fonts, and interaction styles in `apps/docs/app/home.css`, imported by the home route only. Documentation routes keep the base stylesheet and calmer Fumadocs layout.
|
|
66
|
+
- The home reuses the AgentsKit brand tokens without adding a UI dependency.
|
|
67
|
+
- Install commands use the same tab pattern as AgentsKit and expose one copyable command per package manager.
|
|
68
|
+
- The proof terminal follows the AgentsKit demo pattern: colored code tokens, a slowly advancing active step, pause on hover or keyboard focus, manual play/pause, and a static reduced-motion mode.
|
|
69
|
+
- The proof terminal reveals demo, index, and resolve output in sequence. Stage tabs are keyboard operable; hover and focus pause the sequence, and reduced-motion users see a static first frame.
|
|
70
|
+
- The footer is the shared `<agentskit-footer current="doc-bridge">`. Its server-rendered fallback lists the six ecosystem products (current one marked `aria-current="page"`), the repository, and the license.
|
|
71
|
+
- Product navigation, the animated handoff proof, and chat remain Doc Bridge components with shared visual tokens.
|
|
@@ -9,7 +9,7 @@ This slice is complete only when all conditions below are evidenced locally. Pub
|
|
|
9
9
|
|
|
10
10
|
- Composite Action validates committed freshness, accepts shell inputs only through quoted environment variables, pins its runtime package, and pins third-party Actions by SHA.
|
|
11
11
|
- Marketplace metadata, consumer example, release-owner checklist, and automated contract checks agree on the same version.
|
|
12
|
-
- The public portal exposes seven ecosystem products, six Doc Bridge peers, and contextual routes for Chat
|
|
12
|
+
- The public portal exposes seven ecosystem products, six Doc Bridge peers, and contextual routes for Chat and Code Review.
|
|
13
13
|
- `/for-agents`, `llms.txt`, `llms-full.txt`, raw Markdown, and deterministic knowledge are public and cross-linked.
|
|
14
14
|
- Human docs remain concise and navigable; source-heavy detail stays in raw/full machine surfaces.
|
|
15
15
|
- Landing and documentation pages have no horizontal overflow at 375, 768, 1280, or 1440 pixels.
|
|
@@ -157,7 +157,7 @@ The enterprise contract will be strict by default:
|
|
|
157
157
|
|
|
158
158
|
- Add a precision/recall evaluation runner whose fixtures contain expected entities, relations, documentation claims, findings, and unsupported boundaries.
|
|
159
159
|
- Enforce 100% recall and at least 95% precision for the supported fixture matrix before an enterprise profile can pass.
|
|
160
|
-
- Keep the
|
|
160
|
+
- Keep the reference-monorepo result as a real-world baseline, not as a semantic truth set.
|
|
161
161
|
- Add finding density, category distribution, evidence completeness, and change-over-time metrics.
|
|
162
162
|
- Make package/module/file reconciliation scope configurable while retaining raw file-level evidence.
|
|
163
163
|
|
|
@@ -247,7 +247,7 @@ Tests must validate externally observable behavior and the real artifact. Unit t
|
|
|
247
247
|
|
|
248
248
|
### Consumer validation
|
|
249
249
|
|
|
250
|
-
- Install the exact packed artifact in
|
|
250
|
+
- Install the exact packed artifact in the reference monorepo.
|
|
251
251
|
- Run the full Doc Bridge workflow against the real monorepo.
|
|
252
252
|
- Validate its discovered architecture, documentation inventory, reconciliation findings, Registry proposals, report, agent search efficiency, and all applicable product surfaces.
|
|
253
253
|
- Keep endpoint/database checks conditional on actual project behavior and record non-applicability explicitly.
|
|
@@ -265,7 +265,7 @@ The enterprise hardening initiative is complete only when all of the following h
|
|
|
265
265
|
- The default Registry agent and an alternate configured Registry agent pass their bounded-assistance contract.
|
|
266
266
|
- Real CLI and MCP package checks pass.
|
|
267
267
|
- Real-browser UI checks pass with zero automated failures and explicit human visual approval.
|
|
268
|
-
- The
|
|
268
|
+
- The reference-monorepo dogfood run produces a reproducible, anonymization-safe metric record.
|
|
269
269
|
- Documentation, configuration references, release notes, and structural ADR/RFC records are updated.
|
|
270
270
|
- Any external issue, PR, or ticket transition is recorded only after explicit authorization and includes the exact verification run ID.
|
|
271
271
|
- Residual limitations are visible in the final report; enterprise readiness is not claimed while any required gate is pending.
|
|
@@ -277,11 +277,11 @@ The enterprise hardening initiative is complete only when all of the following h
|
|
|
277
277
|
- Perfect resolution of arbitrary reflection, runtime metaprogramming, or generated code without project-provided metadata.
|
|
278
278
|
- Full implementation of every future language analyzer in this initiative.
|
|
279
279
|
- Replacing specialized security scanners, compilers, test runners, API contract tools, or database migration tools.
|
|
280
|
-
- Making the current
|
|
280
|
+
- Making the current reference-monorepo documentation debt disappear as a prerequisite for improving Doc Bridge; that debt remains a measured consumer outcome.
|
|
281
281
|
|
|
282
282
|
## Further Notes
|
|
283
283
|
|
|
284
|
-
- The current
|
|
284
|
+
- The current reference-monorepo dogfood run is evidence for the product but is not a truth set for semantic precision. A separate fixture corpus is mandatory.
|
|
285
285
|
- The current baseline and cycle history must remain immutable unless a human explicitly authorizes a baseline replacement.
|
|
286
286
|
- The implementation should proceed in vertical slices: common contracts and metrics first, analyzer/coverage next, workflow/profile hardening next, Registry and documentation quality next, and complete CLI/MCP/report validation last.
|
|
287
287
|
- Each slice must run the local harness before consuming CI resources. A failed or unavailable required validation blocks completion and must be recorded with the reason.
|
|
@@ -245,7 +245,7 @@ A library enters the runtime dependency list only when it is deterministic, has
|
|
|
245
245
|
| `Retriever`, `RetrievedDocument` | `createDocBridgeRetriever` returns `RetrievedDocument[]` with `metadata: { kind, path, evidence, explain, confidence }`, so `createHybridRetriever`, `createRerankedRetriever`, `formatRetrievedDocuments` and the runtime consume Doc Bridge unchanged |
|
|
246
246
|
| `compileBudget`, `approximateCounter` | `knowledge.lookup` and `handoff.resolve` accept `budgetTokens`; sections drop in a declared order until the payload fits; the response reports `tokens.total`, `fits` and what was dropped |
|
|
247
247
|
| `createApprovalGate`, `ApprovalStore` | overlay approvals, with a file-backed store under `.doc-bridge/approvals/`, shared by the CLI, MCP and the rendered review page |
|
|
248
|
-
| `Finding`, `SEVERITY_ORDER` | `ak-docs check --json --format finding` and MCP `docbridge.diagnostics { format: 'finding' }` emit the canonical shape so Code Review
|
|
248
|
+
| `Finding`, `SEVERITY_ORDER` | `ak-docs check --json --format finding` and MCP `docbridge.diagnostics { format: 'finding' }` emit the canonical shape so Code Review and dashboards need no Doc Bridge specific parser |
|
|
249
249
|
| `fuzzyMatchList` | entity resolution in the Markdown analyzer and the query layer: one candidate at or above 0.92 resolves with `confidence: 'fuzzy'` and evidence, two candidates stay unresolved |
|
|
250
250
|
| `GraphMemory` | `createDocBridgeGraphMemory(snapshot, overlay)` exposes the projected graph through `getNode`, `findEdges` and `traverse` |
|
|
251
251
|
| `bm25Score`, `createHybridRetriever` | the optional RAG path becomes hybrid over the same projection entries, and a vector store is never required |
|
|
@@ -23,7 +23,7 @@ ak-docs map --html --output .doc-bridge/report.html
|
|
|
23
23
|
|
|
24
24
|
Expected artifacts are under `.doc-bridge/workflow/`: `manifest.json`, immutable stage artifacts, `transitions.jsonl`, and `last-known-good.json`. The HTML report is standalone and can be opened directly without a server or network.
|
|
25
25
|
|
|
26
|
-
The safe repository walk excludes common generated trees, including `dist`, `build`, `.next`, `out`, `.turbo`, `.svelte-kit`, `.mcpb-build`, and `.mcpb-output`, so generated output is reported as a coverage boundary rather than mistaken for source architecture. Add a project-specific `safety.exclude` pattern when another tool generates code outside these conventions.
|
|
26
|
+
The safe repository walk excludes common generated trees, including `dist`, `build`, `.next`, `out`, `.turbo`, `.svelte-kit`, `.mcpb-build`, and `.mcpb-output`, so generated output is reported as a coverage boundary rather than mistaken for source architecture. It also skips every path the repository ignores (Git ignore rules, or the `.gitignore` files on disk outside Git). Add a project-specific `safety.exclude` pattern when another tool generates code outside these conventions.
|
|
27
27
|
|
|
28
28
|
## Safe fixes
|
|
29
29
|
|
package/docs/loop-workflow.md
CHANGED
|
@@ -25,19 +25,19 @@ So the eleven workstreams live in two places on purpose: the GitHub sub-issues o
|
|
|
25
25
|
|
|
26
26
|
## Workstream map
|
|
27
27
|
|
|
28
|
-
| Workstream |
|
|
29
|
-
| --- | --- | --- | --- |
|
|
30
|
-
| KR-07 Retrieval benchmark and CI gate |
|
|
31
|
-
| KR-01 Lexical ranking and full corpus |
|
|
32
|
-
| KR-02 Markdown analyzer on remark |
|
|
33
|
-
| KR-03 Code areas and area scope |
|
|
34
|
-
| KR-05 Per-entity hashes, incremental scan |
|
|
35
|
-
| KR-04 Graph layer on graphology |
|
|
36
|
-
| KR-06 Retrieval projection and ranking |
|
|
37
|
-
| KR-08 Budgeted MCP tools, measured doctor |
|
|
38
|
-
| KR-09 Markdown renderings on knap |
|
|
39
|
-
| KR-10 Enrichment overlay |
|
|
40
|
-
| KR-11 Overlay stats, assisted study arm |
|
|
28
|
+
| Workstream | GitHub spec | Start state | Blocked by |
|
|
29
|
+
| --- | --- | --- | --- |
|
|
30
|
+
| KR-07 Retrieval benchmark and CI gate | [#176](https://github.com/AgentsKit-io/doc-bridge/issues/176) | Todo, Urgent | — |
|
|
31
|
+
| KR-01 Lexical ranking and full corpus | [#170](https://github.com/AgentsKit-io/doc-bridge/issues/170) | Todo, High | — |
|
|
32
|
+
| KR-02 Markdown analyzer on remark | [#171](https://github.com/AgentsKit-io/doc-bridge/issues/171) | Todo, High | — |
|
|
33
|
+
| KR-03 Code areas and area scope | [#172](https://github.com/AgentsKit-io/doc-bridge/issues/172) | Todo, High | — |
|
|
34
|
+
| KR-05 Per-entity hashes, incremental scan | [#174](https://github.com/AgentsKit-io/doc-bridge/issues/174) | Todo, High | — |
|
|
35
|
+
| KR-04 Graph layer on graphology | [#173](https://github.com/AgentsKit-io/doc-bridge/issues/173) | Backlog | KR-02, KR-03 |
|
|
36
|
+
| KR-06 Retrieval projection and ranking | [#175](https://github.com/AgentsKit-io/doc-bridge/issues/175) | Backlog | KR-01…KR-05 |
|
|
37
|
+
| KR-08 Budgeted MCP tools, measured doctor | [#177](https://github.com/AgentsKit-io/doc-bridge/issues/177) | Backlog | KR-06, KR-07 |
|
|
38
|
+
| KR-09 Markdown renderings on knap | [#178](https://github.com/AgentsKit-io/doc-bridge/issues/178) | Backlog | KR-03, KR-05, KR-06 |
|
|
39
|
+
| KR-10 Enrichment overlay | [#179](https://github.com/AgentsKit-io/doc-bridge/issues/179) | Backlog | KR-04, KR-05, KR-06 |
|
|
40
|
+
| KR-11 Overlay stats, assisted study arm | [#180](https://github.com/AgentsKit-io/doc-bridge/issues/180) | Backlog | KR-07, KR-10 |
|
|
41
41
|
|
|
42
42
|
## One workstream at a time
|
|
43
43
|
|
|
@@ -87,9 +87,9 @@ ak-harness loop status # what Orca knows: en
|
|
|
87
87
|
|
|
88
88
|
```bash
|
|
89
89
|
ak-harness loop debrief # in flight, held, escalated, cooldowns — reads local state only
|
|
90
|
-
ak-harness loop watch --issue
|
|
90
|
+
ak-harness loop watch --issue ABC-123 # DONE | FAILED | ACTION_REQUIRED | PROGRESS
|
|
91
91
|
ak-harness loop paused # workstreams auto-paused after repeated failures
|
|
92
|
-
ak-harness loop resume
|
|
92
|
+
ak-harness loop resume ABC-123 # clear a pause, or remove the loop:paused label in Linear
|
|
93
93
|
ak-harness loop retro --since 7d # digest plus one knob to turn in loop.config.yaml
|
|
94
94
|
```
|
|
95
95
|
|
package/docs/spec/config-v1.md
CHANGED
|
@@ -375,16 +375,16 @@ These gates are deterministic lint checks, not editorial grading:
|
|
|
375
375
|
|
|
376
376
|
### Why `index-reproducible` is opt-in
|
|
377
377
|
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
`index-freshness` reports staleness that nothing caused, and regenerating
|
|
383
|
-
|
|
378
|
+
Every repository scan honours ignore rules (see [Ignored files](#ignored-files)), so a fresh
|
|
379
|
+
`ak-docs index` never picks up build output. An index can still carry an ignored path when it was
|
|
380
|
+
built before the rule existed, or by an older Doc Bridge release. Once the index is committed for a
|
|
381
|
+
gate to verify, that is a defect: two checkouts of the same commit produce different artifacts,
|
|
382
|
+
`index-freshness` reports staleness that nothing caused, and regenerating on another machine
|
|
383
|
+
disagrees in the other direction.
|
|
384
384
|
|
|
385
385
|
`index-reproducible` asks Git which of the indexed paths it ignores, and names each one with the
|
|
386
386
|
rule that matched (`apps/docs-next/.gitignore:13:lib/ask-context.ts`) so the fix is one lookup
|
|
387
|
-
away: add the path to `safety.exclude
|
|
387
|
+
away: run `ak-docs index` again, or add the path to `safety.exclude` if it is not ignored by Git. It reports success, not failure, when the index is not
|
|
388
388
|
committed or the project is not a Git checkout — there is nothing to reproduce in either case. A
|
|
389
389
|
file that is both tracked and matched by an ignore rule is not flagged; being committed is the
|
|
390
390
|
point.
|
|
@@ -624,6 +624,28 @@ secret files. `safety.exclude` adds project-specific patterns; it does not
|
|
|
624
624
|
replace the built-in safety boundary. Excluded files remain outside the
|
|
625
625
|
snapshot and are represented by analyzer coverage when relevant.
|
|
626
626
|
|
|
627
|
+
### Ignored files
|
|
628
|
+
|
|
629
|
+
On top of those excludes, every command that walks the repository — `index`,
|
|
630
|
+
`doctor`, `scan`/`check`, gates such as `index-reproducible`, link-fix
|
|
631
|
+
proposals — skips what the repository ignores, so a committed index is a
|
|
632
|
+
function of committed content:
|
|
633
|
+
|
|
634
|
+
- Inside a Git work tree the file list comes from
|
|
635
|
+
`git ls-files --cached --others --exclude-standard`. That applies nested
|
|
636
|
+
`.gitignore` files, `.git/info/exclude` and global excludes exactly like
|
|
637
|
+
`git status`, keeps untracked files that are not ignored, and keeps a
|
|
638
|
+
tracked file even when an ignore rule also matches it.
|
|
639
|
+
- Outside Git (an exported tarball, a cache, no `git` binary) Doc Bridge reads
|
|
640
|
+
the `.gitignore` files on disk, nested ones included, with the same pattern
|
|
641
|
+
semantics.
|
|
642
|
+
|
|
643
|
+
Build output such as `apps/*/.next/`, `.source/`, generated API pages,
|
|
644
|
+
`next-env.d.ts`, or an `AGENTS.md` that a dev server writes therefore stays
|
|
645
|
+
out of the index as long as the repository ignores it. Agent-memory ingestion
|
|
646
|
+
(`ak-docs memory ingest`) is the exception: memory directories are read as
|
|
647
|
+
input even when they are gitignored.
|
|
648
|
+
|
|
627
649
|
## `analysis` (optional)
|
|
628
650
|
|
|
629
651
|
```ts
|
|
@@ -108,6 +108,11 @@ The ecosystem contract files are committed, network-free consumer snapshots of t
|
|
|
108
108
|
AgentsKit `ecosystem.json` v2 manifest and `ecosystem-claims.json` ledger. The gate verifies
|
|
109
109
|
their schema relationship, product identity parity, the adopting product ID, and that declared
|
|
110
110
|
cross-links occur both in the manifest's public surfaces and in repository documentation.
|
|
111
|
+
Product membership comes from the manifest itself: no product is required by name, so a
|
|
112
|
+
product that the canonical manifest drops or hides (for example with `navigation.showInBar:
|
|
113
|
+
false`) does not have to be kept as a placeholder record. The deprecated `properties` shim is
|
|
114
|
+
optional; when present, each entry must name a distinct `products[]` record and repeat its
|
|
115
|
+
name, domain, URL, repository, tagline, kind, accent, and machine surfaces exactly.
|
|
111
116
|
Doc Bridge also records the upstream ref and SHA-256 digests in `ecosystem-upstream.json`;
|
|
112
117
|
`pnpm check:ecosystem-upstream` compares the local snapshots with AgentsKit `main` in CI.
|
|
113
118
|
This network parity check is deliberately separate from the runtime conformance profile, which
|
|
@@ -105,7 +105,7 @@ docbridge.diagnostics { "format": "finding" }
|
|
|
105
105
|
```
|
|
106
106
|
|
|
107
107
|
Both emit every reconciliation diagnostic as a `Finding` from `@agentskit/core/finding`, with
|
|
108
|
-
severities drawn from `SEVERITY_ORDER`, so Code Review
|
|
108
|
+
severities drawn from `SEVERITY_ORDER`, so Code Review and dashboards read Doc Bridge with no
|
|
109
109
|
parser of their own. Internal severities map `error → high`, `warn → medium`, `info → low`,
|
|
110
110
|
`off → info`; nothing is `critical`, because a documentation finding never takes a system down.
|
|
111
111
|
`title` is the code as words, `detail` the message, `category` the status, `location` the first
|
|
@@ -7,7 +7,7 @@ description: Evidence-driven validation of Doc Bridge against the AgentsKit OS r
|
|
|
7
7
|
|
|
8
8
|
## Objective
|
|
9
9
|
|
|
10
|
-
Validate the complete Doc Bridge change against
|
|
10
|
+
Validate the complete Doc Bridge change against the reference monorepo, not only the published package or the HTML report. The validation must prove the bridge between repository structure, documentation, agents, and humans:
|
|
11
11
|
|
|
12
12
|
1. repository architecture is discovered at package, module, and file levels;
|
|
13
13
|
2. documentation is classified, indexed, and checked for freshness;
|
|
@@ -47,7 +47,7 @@ This plan is a validation contract. A green result from one cycle never substitu
|
|
|
47
47
|
|
|
48
48
|
### Cycle 1 — Real consumer and reproducibility
|
|
49
49
|
|
|
50
|
-
**Purpose:** prove the published package is the artifact used by
|
|
50
|
+
**Purpose:** prove the published package is the artifact used by the reference monorepo and that the pipeline is repeatable.
|
|
51
51
|
|
|
52
52
|
**Checks:** install the declared package version, run discovery, index, reconcile, check, report, and Registry agent using the target repository.
|
|
53
53
|
|
|
@@ -92,7 +92,7 @@ This plan is a validation contract. A green result from one cycle never substitu
|
|
|
92
92
|
|
|
93
93
|
**Purpose:** prove that documented architecture and observed architecture agree at the declared semantic level.
|
|
94
94
|
|
|
95
|
-
**Checks:** use representative package/module declarations and known-positive, known-negative, stale, conflicting, unresolved, and dynamic relation cases; run the same policy against
|
|
95
|
+
**Checks:** use representative package/module declarations and known-positive, known-negative, stale, conflicting, unresolved, and dynamic relation cases; run the same policy against the reference monorepo.
|
|
96
96
|
|
|
97
97
|
**Success metrics:**
|
|
98
98
|
|
|
@@ -104,7 +104,7 @@ This plan is a validation contract. A green result from one cycle never substitu
|
|
|
104
104
|
|
|
105
105
|
### Phase 3 — Real-artifact documentation inventory
|
|
106
106
|
|
|
107
|
-
The first
|
|
107
|
+
The first reference-monorepo audit exposed that the repository contains multiple documentation
|
|
108
108
|
surfaces. A single `documentedDocumentCount / documentCount` ratio mixed the 27
|
|
109
109
|
agent-corpus documents with human guides, project files, archives, and
|
|
110
110
|
unclassified Markdown. Doc Bridge now reports deterministic document counts by
|
|
@@ -112,7 +112,7 @@ classification and marks `docs-archive` as `archive`; the report highlights the
|
|
|
112
112
|
agent-corpus ratio separately. This keeps the metric useful without hiding the
|
|
113
113
|
full inventory.
|
|
114
114
|
|
|
115
|
-
The phase gate is satisfied only when the real
|
|
115
|
+
The phase gate is satisfied only when the real reference-monorepo artifact reports the
|
|
116
116
|
classification totals, the agent-corpus numerator/denominator, and evidence for
|
|
117
117
|
the classification rule. A changed source revision or configuration invalidates
|
|
118
118
|
the evidence and requires a new workflow and verification run.
|
|
@@ -195,7 +195,7 @@ The report exposes aggregate insights suitable for case studies, but publication
|
|
|
195
195
|
|
|
196
196
|
## Latest measured cycle
|
|
197
197
|
|
|
198
|
-
Cycle 2 shipped Doc Bridge `1.7.20` to
|
|
198
|
+
Cycle 2 shipped Doc Bridge `1.7.20` to the reference monorepo and added deterministic resolution of literal dynamic imports. The official workflow run is `1787934948972-14360`; the verification run is `1787935063723-14641`.
|
|
199
199
|
|
|
200
200
|
- discovered entities: `12,930 → 12,937`;
|
|
201
201
|
- raw relations: `40,921 → 41,300`;
|
|
@@ -207,7 +207,7 @@ Cycle 2 shipped Doc Bridge `1.7.20` to `agentskit-os` and added deterministic re
|
|
|
207
207
|
|
|
208
208
|
The result is an improvement in semantic discovery, not proof that runtime wiring or non-literal loading is resolved. The next cycle should measure and improve those boundaries or add an explicit configuration/adapter path for projects that can provide runtime architecture evidence.
|
|
209
209
|
|
|
210
|
-
Cycle 3 shipped Doc Bridge `1.7.21` to
|
|
210
|
+
Cycle 3 shipped Doc Bridge `1.7.21` to the reference monorepo and added explicit `dynamic-literal` relation metadata plus benchmark counters for unresolved dynamic loading and runtime-wiring candidates. The official workflow run is `1787937333636-16849`; the verification run is `1787937404198-17113`.
|
|
211
211
|
|
|
212
212
|
- `379` literal dynamic-import relations are now identifiable in the snapshot;
|
|
213
213
|
- `56` files contain non-literal loading that remains unresolved;
|
|
@@ -216,7 +216,7 @@ Cycle 3 shipped Doc Bridge `1.7.21` to `agentskit-os` and added explicit `dynami
|
|
|
216
216
|
- entity/relation/documentation and agent-search metrics remained grounded, with agent search at `100%` hit rate and `1,067` estimated p95 tokens;
|
|
217
217
|
- automated UI evidence passed across all 10 viewport/theme scenarios; human approval is required for the current report hash.
|
|
218
218
|
|
|
219
|
-
Cycle 4 shipped Doc Bridge `1.7.24` to
|
|
219
|
+
Cycle 4 shipped Doc Bridge `1.7.24` to the reference monorepo and added configurable JS/TS runtime-wiring detection for statically imported targets, explicit unresolved-wiring coverage, a runtime-wiring benchmark counter, and browser-runtime warmup for stable visual timing. The official workflow run is `1787938291045-21432`; the verification run is `1787938325493-21506`.
|
|
220
220
|
|
|
221
221
|
- the real repository produced `12,937` entities and `41,300` raw relations;
|
|
222
222
|
- package-level reconciliation compared `2,774` relations and produced `2,691` findings, all with evidence;
|
|
@@ -226,7 +226,7 @@ Cycle 4 shipped Doc Bridge `1.7.24` to `agentskit-os` and added configurable JS/
|
|
|
226
226
|
- agent search remained at `100%` hit rate and `1,067` estimated p95 tokens with `99%` context reduction;
|
|
227
227
|
- all 10 automated viewport/theme scenarios passed with no console errors, failed requests, overflow, clipping, or contrast violations; the screenshots were reviewed locally and the harness is awaiting explicit human approval.
|
|
228
228
|
|
|
229
|
-
Cycle 5 shipped Doc Bridge `1.7.25` to
|
|
229
|
+
Cycle 5 shipped Doc Bridge `1.7.25` to the reference monorepo and tightened the default runtime-wiring heuristic by making generic `bind` and `listen` calls opt-in while preserving explicit configuration. The official workflow run is `1787938899030-22694`; the verification run is `1787938967570-22837`.
|
|
230
230
|
|
|
231
231
|
- the real repository remained stable at `12,937` entities, `41,300` raw relations, `2,774` compared relations, and `2,691` evidence-backed findings;
|
|
232
232
|
- unresolved runtime-wiring candidates fell from `116` to `54` (`53.4%` reduction) by removing generic API false positives;
|
|
@@ -235,7 +235,7 @@ Cycle 5 shipped Doc Bridge `1.7.25` to `agentskit-os` and tightened the default
|
|
|
235
235
|
- the explicit configuration path was covered by a fixture: `listen` is ignored by default and produces a relation when configured;
|
|
236
236
|
- all 10 automated viewport/theme scenarios passed; the verification run is awaiting human visual approval.
|
|
237
237
|
|
|
238
|
-
Cycle 6 shipped Doc Bridge `1.7.26` to
|
|
238
|
+
Cycle 6 shipped Doc Bridge `1.7.26` to the reference monorepo and tightened unresolved-wiring coverage to require a potential target argument, excluding inline registrations and no-argument calls from architectural gaps while preserving identifiers, property accesses, and factory calls. The official workflow run is `1787939273593-23788`; the verification run is `1787939317943-23884`.
|
|
239
239
|
|
|
240
240
|
- the real repository remained stable at `12,937` entities, `41,300` raw relations, `2,774` compared relations, and `2,691` evidence-backed findings;
|
|
241
241
|
- unresolved runtime-wiring candidates fell from `54` to `22` (`59.3%` reduction; `81.0%` reduction from the `116`-file starting point);
|
|
@@ -244,7 +244,7 @@ Cycle 6 shipped Doc Bridge `1.7.26` to `agentskit-os` and tightened unresolved-w
|
|
|
244
244
|
- the known-case fixture retained both unresolved identifier detection and the explicit custom-method configuration path;
|
|
245
245
|
- all 10 automated viewport/theme scenarios passed; the verification run is awaiting human visual approval.
|
|
246
246
|
|
|
247
|
-
Cycle 7 shipped Doc Bridge `1.7.28` to
|
|
247
|
+
Cycle 7 shipped Doc Bridge `1.7.28` to the reference monorepo and made the large-report overview payload package-scoped. The first load now carries package topology plus compact diagnostic indexes; module/file detail remains lazy. The official workflow run is `1787940069560-26699`; the verification run is `1787940112369-26783`.
|
|
248
248
|
|
|
249
249
|
- the real repository remained stable at `12,937` entities, `41,300` raw relations, `2,774` compared relations, and `2,691` evidence-backed findings;
|
|
250
250
|
- unresolved runtime-wiring candidates fell from `22` to `9` (`59.1%` additional reduction; `92.2%` reduction from the `116`-file starting point); test/spec runtime wiring is excluded by default and covered by an explicit opt-in fixture;
|
|
@@ -255,7 +255,7 @@ Cycle 7 shipped Doc Bridge `1.7.28` to `agentskit-os` and made the large-report
|
|
|
255
255
|
|
|
256
256
|
## Current known blockers after the measured dogfood cycle
|
|
257
257
|
|
|
258
|
-
- package `1.7.28` is installed and verified in
|
|
258
|
+
- package `1.7.28` is installed and verified in the reference monorepo; the workflow run is `1787940069560-26699` and the verification run is `1787940112369-26783`;
|
|
259
259
|
- the benchmark passed against the original anonymization-safe baseline; the detailed cycle measurements are recorded above;
|
|
260
260
|
- the agent search fixture returned a grounded match for `100%` of queries, with p95 `1,067` estimated tokens and `99%` context reduction; reconciliation evidence coverage was `100%` for the `2,691` findings;
|
|
261
261
|
- the visual check passed all automated checks across 10 viewport/theme scenarios, but the current verification run remains `AWAITING_HUMAN_APPROVAL` until a human reviews the screenshots and approves run `1787940112369-26783`;
|
|
@@ -266,4 +266,4 @@ The current run is `AWAITING_HUMAN_APPROVAL`, not complete. Discovery, package-l
|
|
|
266
266
|
|
|
267
267
|
### Phase 2 — Semantic classification measurement
|
|
268
268
|
|
|
269
|
-
The next cycle adds a small, deterministic labeled benchmark around the real reconciliation function. It covers confirmed, undocumented, stale, not-analyzed, conflicting, and unresolved declarations. The acceptance threshold is exact per-case diagnostic classification with non-empty evidence, plus `1.000` finding precision, `1.000` finding recall, and `1.000` evidence ratio. The
|
|
269
|
+
The next cycle adds a small, deterministic labeled benchmark around the real reconciliation function. It covers confirmed, undocumented, stale, not-analyzed, conflicting, and unresolved declarations. The acceptance threshold is exact per-case diagnostic classification with non-empty evidence, plus `1.000` finding precision, `1.000` finding recall, and `1.000` evidence ratio. The reference-monorepo verification contract runs this gate directly against the checked-out Doc Bridge source so a later change cannot silently preserve only the aggregate report counts.
|
package/ecosystem-claims.json
CHANGED
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
"id": "catalog-providers",
|
|
62
|
-
"value":
|
|
62
|
+
"value": 222,
|
|
63
63
|
"noun": "providers",
|
|
64
64
|
"evidence": {
|
|
65
65
|
"type": "repository-derivation",
|
|
@@ -67,11 +67,11 @@
|
|
|
67
67
|
"path": "scripts/compute-stats.mjs",
|
|
68
68
|
"summary": "Providers in the committed model catalog snapshot."
|
|
69
69
|
},
|
|
70
|
-
"conservativeFloor":
|
|
70
|
+
"conservativeFloor": 220
|
|
71
71
|
},
|
|
72
72
|
{
|
|
73
73
|
"id": "catalog-models",
|
|
74
|
-
"value":
|
|
74
|
+
"value": 7870,
|
|
75
75
|
"noun": "models",
|
|
76
76
|
"evidence": {
|
|
77
77
|
"type": "repository-derivation",
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"path": "scripts/compute-stats.mjs",
|
|
80
80
|
"summary": "Models in the committed provider catalog snapshot."
|
|
81
81
|
},
|
|
82
|
-
"conservativeFloor":
|
|
82
|
+
"conservativeFloor": 7000
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
85
|
"id": "skills",
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
},
|
|
107
107
|
{
|
|
108
108
|
"id": "recipes",
|
|
109
|
-
"value":
|
|
109
|
+
"value": 64,
|
|
110
110
|
"noun": "recipes",
|
|
111
111
|
"evidence": {
|
|
112
112
|
"type": "repository-derivation",
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
"path": "scripts/compute-stats.mjs",
|
|
115
115
|
"summary": "Published recipe MDX pages excluding indexes and metadata."
|
|
116
116
|
},
|
|
117
|
-
"conservativeFloor":
|
|
117
|
+
"conservativeFloor": 64
|
|
118
118
|
},
|
|
119
119
|
{
|
|
120
120
|
"id": "core-size-kb-gzip",
|
|
@@ -148,37 +148,37 @@
|
|
|
148
148
|
"claims": []
|
|
149
149
|
},
|
|
150
150
|
{
|
|
151
|
-
"productId": "
|
|
151
|
+
"productId": "doc-bridge",
|
|
152
152
|
"source": {
|
|
153
|
-
"type": "
|
|
154
|
-
"
|
|
153
|
+
"type": "repository",
|
|
154
|
+
"repo": "AgentsKit-io/doc-bridge"
|
|
155
155
|
},
|
|
156
156
|
"verification": "declared",
|
|
157
157
|
"claims": []
|
|
158
158
|
},
|
|
159
159
|
{
|
|
160
|
-
"productId": "
|
|
160
|
+
"productId": "code-review",
|
|
161
161
|
"source": {
|
|
162
162
|
"type": "repository",
|
|
163
|
-
"repo": "AgentsKit-io/
|
|
163
|
+
"repo": "AgentsKit-io/code-review"
|
|
164
164
|
},
|
|
165
165
|
"verification": "declared",
|
|
166
166
|
"claims": []
|
|
167
167
|
},
|
|
168
168
|
{
|
|
169
|
-
"productId": "
|
|
169
|
+
"productId": "harness",
|
|
170
170
|
"source": {
|
|
171
|
-
"type": "
|
|
172
|
-
"
|
|
171
|
+
"type": "endpoint",
|
|
172
|
+
"url": "https://harness.agentskit.io/api/stats.json"
|
|
173
173
|
},
|
|
174
174
|
"verification": "declared",
|
|
175
175
|
"claims": []
|
|
176
176
|
},
|
|
177
177
|
{
|
|
178
|
-
"productId": "
|
|
178
|
+
"productId": "playbook",
|
|
179
179
|
"source": {
|
|
180
|
-
"type": "
|
|
181
|
-
"
|
|
180
|
+
"type": "endpoint",
|
|
181
|
+
"url": "https://playbook.agentskit.io/api/stats.json"
|
|
182
182
|
},
|
|
183
183
|
"verification": "declared",
|
|
184
184
|
"claims": []
|
package/ecosystem-upstream.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"repository": "AgentsKit-io/agentskit",
|
|
4
4
|
"ref": "main",
|
|
5
5
|
"files": {
|
|
6
|
-
"ecosystem.json": "
|
|
7
|
-
"ecosystem-claims.json": "
|
|
6
|
+
"ecosystem.json": "3810d9530566f8f44b959be95dadbef656b56d46097f45ba3b4502e86d7bc57b",
|
|
7
|
+
"ecosystem-claims.json": "5d0e52c420e73573a5f70dfd911236d671bc006500a1cae17c1a03a27dc2c8c7"
|
|
8
8
|
}
|
|
9
9
|
}
|