agent-doc-system 1.1.0 → 1.2.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.
Files changed (52) hide show
  1. package/CHANGELOG.md +269 -0
  2. package/README.md +38 -0
  3. package/adapters/ansible.mjs +1 -1
  4. package/adapters/cache.mjs +8 -2
  5. package/adapters/contract-consumers.mjs +1 -1
  6. package/adapters/database.mjs +18 -4
  7. package/adapters/events.mjs +1 -1
  8. package/adapters/github-actions.mjs +244 -85
  9. package/adapters/go.mjs +1 -1
  10. package/adapters/index.mjs +3 -1
  11. package/adapters/object-store.mjs +2 -2
  12. package/adapters/python.mjs +1142 -0
  13. package/adapters/resource-client.mjs +1 -1
  14. package/adapters/rust.mjs +987 -0
  15. package/adapters/typescript.mjs +1 -1
  16. package/bin/agentdoc.mjs +2 -2
  17. package/core/audit.mjs +5 -3
  18. package/core/codes.mjs +4 -0
  19. package/core/compile.mjs +124 -11
  20. package/core/dependents.mjs +42 -0
  21. package/core/discover.mjs +60 -9
  22. package/core/fsx.mjs +17 -0
  23. package/core/graph.mjs +1 -1
  24. package/core/impact.mjs +55 -44
  25. package/core/query.mjs +18 -8
  26. package/core/scaffold.mjs +87 -22
  27. package/core/sourcescan.mjs +11 -2
  28. package/core/toml.mjs +463 -140
  29. package/docs/ADAPTERS.md +196 -6
  30. package/docs/BENCHMARK.md +68 -0
  31. package/docs/CI.md +1 -1
  32. package/docs/EVALS.md +33 -2
  33. package/docs/MIGRATION.md +4 -2
  34. package/docs/QUERY.md +53 -4
  35. package/docs/SPEC.md +22 -0
  36. package/docs/ci/github-actions.yml +1 -1
  37. package/evals/harness.mjs +32 -6
  38. package/evals/scenarios/fixture-b-03-change-shared-lib.json +8 -1
  39. package/evals/scenarios/fixture-c-03-shared-vocabulary.json +7 -1
  40. package/evals/scenarios/fixture-e-01-change-shared-lib.json +14 -0
  41. package/evals/scenarios/fixture-e-02-change-manifest.json +9 -0
  42. package/evals/scenarios/fixture-e-03-local-module.json +9 -0
  43. package/evals/scenarios/fixture-e-04-ambiguous-crate.json +14 -0
  44. package/evals/scenarios/fixture-f-01-change-shared-lib.json +9 -0
  45. package/evals/scenarios/fixture-f-02-change-manifest.json +9 -0
  46. package/evals/scenarios/fixture-f-03-shadowed-import.json +9 -0
  47. package/evals/scenarios/fixture-f-04-nested-workspace.json +9 -0
  48. package/evals/scenarios/fixture-f-05-alembic-database.json +9 -0
  49. package/evals/scenarios/fixture-f-06-unittest-job.json +9 -0
  50. package/package.json +2 -1
  51. package/skills/agent-doc-system/references/create-migrate.md +13 -3
  52. package/templates/ci.yml +1 -1
@@ -5,5 +5,11 @@
5
5
  "touch": ["shared/index.js"],
6
6
  "truth": ["component:default/shared", "component:default/edge", "component:default/console", "event:corp.telemetry.ingest.v1"],
7
7
  "critical": ["event:corp.telemetry.ingest.v1"],
8
- "verification": []
8
+ "verification": [
9
+ "verify:vitest run",
10
+ "verify:tsc --noEmit",
11
+ "verify-id:component:default/console:test",
12
+ "verify-id:component:default/console:typecheck",
13
+ "verify-id:component:default/edge:test"
14
+ ]
9
15
  }
@@ -0,0 +1,14 @@
1
+ {
2
+ "id": "e-01",
3
+ "repository": "fixture-e",
4
+ "title": "Change the shared engine crate",
5
+ "touch": ["crates/engine/src/lib.rs"],
6
+ "truth": ["component:default/engine", "component:default/cli"],
7
+ "critical": [],
8
+ "verification": [
9
+ "verify:cargo test -p engine",
10
+ "verify:cargo clippy -p engine",
11
+ "verify:cargo test -p cli",
12
+ "verify:cargo clippy -p cli"
13
+ ]
14
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": "e-02",
3
+ "repository": "fixture-e",
4
+ "title": "Change the CLI crate manifest",
5
+ "touch": ["apps/cli/Cargo.toml"],
6
+ "truth": ["component:default/cli", "component:default/engine", "component:default/testutil", "external:serde"],
7
+ "critical": [],
8
+ "verification": ["verify:cargo test -p cli", "verify:cargo clippy -p cli"]
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": "e-03",
3
+ "repository": "fixture-e",
4
+ "title": "Change CLI code that looks like the logging crate and an ambiguous foo_bar import",
5
+ "touch": ["apps/cli/src/logging.rs", "apps/cli/src/main.rs"],
6
+ "truth": ["component:default/cli", "component:default/engine"],
7
+ "critical": [],
8
+ "verification": ["verify:cargo test -p cli", "verify:cargo clippy -p cli"]
9
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "id": "e-04",
3
+ "repository": "fixture-e",
4
+ "title": "Change each crate of the foo-bar / foo_bar pair",
5
+ "touch": ["crates/foo-bar/src/lib.rs", "crates/foo_bar/src/lib.rs"],
6
+ "truth": ["component:default/foo-bar", "component:default/foo-u-bar"],
7
+ "critical": [],
8
+ "verification": [
9
+ "verify:cargo test -p foo-bar",
10
+ "verify:cargo clippy -p foo-bar",
11
+ "verify:cargo test -p foo_bar",
12
+ "verify:cargo clippy -p foo_bar"
13
+ ]
14
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": "f-01",
3
+ "repository": "fixture-f",
4
+ "title": "Change the shared ledger-core library",
5
+ "touch": ["libs/ledger-core/src/ledger_core/models.py"],
6
+ "truth": ["component:default/ledger-core", "component:default/ledger-api"],
7
+ "critical": [],
8
+ "verification": ["verify:uv run pytest", "verify:uv run ruff check", "verify:uv run mypy"]
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": "f-02",
3
+ "repository": "fixture-f",
4
+ "title": "Change the ledger API manifest",
5
+ "touch": ["services/ledger-api/pyproject.toml"],
6
+ "truth": ["component:default/ledger-api", "component:default/ledger-core", "component:default/ledger-testing", "external:sqlalchemy"],
7
+ "critical": [],
8
+ "verification": ["verify:uv run pytest", "verify:uv run ruff check", "verify:uv run mypy"]
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": "f-03",
3
+ "repository": "fixture-f",
4
+ "title": "Change the app that imports its own utils module",
5
+ "touch": ["services/b-app/b_app/main.py"],
6
+ "truth": ["component:default/b-app"],
7
+ "critical": [],
8
+ "verification": []
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": "f-04",
3
+ "repository": "fixture-f",
4
+ "title": "Change a nested workspace member, not its parent",
5
+ "touch": ["python/packages/api/src/api_svc/main.py"],
6
+ "truth": ["component:default/api-svc", "component:default/core-lib"],
7
+ "critical": [],
8
+ "verification": []
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": "f-05",
3
+ "repository": "fixture-f",
4
+ "title": "Change the ledger API Alembic migration",
5
+ "touch": ["services/ledger-api/alembic/versions/0001_init.py"],
6
+ "truth": ["component:default/ledger-api", "uses:resource:default/ledger-api-postgres"],
7
+ "critical": ["uses:resource:default/ledger-api-postgres"],
8
+ "verification": ["verify:uv run pytest", "verify:uv run ruff check", "verify:uv run mypy"]
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "id": "f-06",
3
+ "repository": "fixture-f",
4
+ "title": "Change the ledger job exercised by unittest",
5
+ "touch": ["jobs/ledger-jobs/tests/test_jobs.py"],
6
+ "truth": ["component:default/ledger-jobs"],
7
+ "critical": [],
8
+ "verification": ["verify:python -m unittest discover"]
9
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-doc-system",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "type": "module",
5
5
  "description": "Portable documentation and software-catalog system with an explicit authority model, for AI coding agents",
6
6
  "keywords": [
@@ -42,6 +42,7 @@
42
42
  "schemas",
43
43
  "skills",
44
44
  "templates",
45
+ "CHANGELOG.md",
45
46
  "INSTALL_FOR_AGENTS.md"
46
47
  ],
47
48
  "license": "MIT"
@@ -40,9 +40,19 @@ never copies the agentdoc implementation into the repository.
40
40
  In `agentdoc.config.yaml`:
41
41
 
42
42
  - Set `namespace`, fix `discovery.componentDescriptors` to match the real
43
- layout, and enable the adapters for the technologies present. `adapters: []`
44
- is a valid but useless starting point: with no adapter, a component
45
- descriptor is an unsupported claim and compilation fails on purpose.
43
+ layout, and enable the adapters for the technologies present. `init`
44
+ pre-selects the language and deployment adapters whose manifests it finds:
45
+ `node`, `go`, `rust` and `python`, plus `dockerfile` and `wrangler`. It also
46
+ adds `database`, `openapi`, `events` and `github-actions`. Add the rest
47
+ (`pnpm`, `turborepo`, `typescript`, `protobuf`, `graphql`, `ansible`, …) when
48
+ the repository uses them. `adapters: []` is a valid but useless starting
49
+ point: with no adapter, a component descriptor is an unsupported claim and
50
+ compilation fails on purpose.
51
+ - An existing catalog does not gain new adapters on upgrade. After upgrading
52
+ the CLI, compare `adapters:` with the technologies present, for example a
53
+ repository with `Cargo.toml` or `pyproject.toml` units and no `rust` /
54
+ `python` entry. Then run `agentdoc audit`: newly visible units appear as
55
+ `AGENTDOC_COVERAGE_ZERO` until they have a descriptor.
46
56
  - Three example authority rules are written **commented out**. Uncomment only
47
57
  the ones you can justify, with the rationale in your own words. An authority
48
58
  rule is a governance decision; the scaffolder does not make it for you.
package/templates/ci.yml CHANGED
@@ -17,7 +17,7 @@ jobs:
17
17
  with: { node-version: '24' }
18
18
  - name: Install the agentdoc CLI
19
19
  # Unpinned tracks main. For CI reproducibility pin a tag or commit:
20
- # github:lbframe/agent-doc-system#v1.1.0
20
+ # github:lbframe/agent-doc-system#v1.2.0
21
21
  # A compiler upgrade intentionally invalidates committed graphs.
22
22
  run: npm install -g github:lbframe/agent-doc-system
23
23
  - name: Validate and compile