@c4a/context-cli 0.6.13 → 0.6.17

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/README.md +6 -0
  2. package/README.zh-CN.md +5 -0
  3. package/cli.js +6114 -3390
  4. package/docs/document-optimization.md +58 -0
  5. package/docs/document-optimization.zh-CN.md +50 -0
  6. package/package.json +3 -2
  7. package/plugins/VERSION +1 -1
  8. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  9. package/plugins/claude/commands/context.md +43 -2
  10. package/plugins/codex/.codex-plugin/plugin.json +2 -2
  11. package/plugins/codex/skills/context/SKILL.md +43 -2
  12. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  13. package/plugins/cursor/commands/c4a-context.md +43 -2
  14. package/plugins/skills/c4a-context/SKILL.md +43 -2
  15. package/providers/context/actions/optimize-documents.yaml +6 -0
  16. package/providers/context/actions/preview-extraction-batch.yaml +5 -0
  17. package/providers/context/actions/revise-document.yaml +5 -0
  18. package/providers/context/codes.yaml +6 -0
  19. package/providers/context/graphs/workspace.yaml +118 -3
  20. package/providers/context/manifest.json +242 -26
  21. package/providers/context/provider.yaml +1 -1
  22. package/providers/context/resources/dialogue/code-extraction.md +39 -9
  23. package/providers/context/resources/dialogue/package-output.md +5 -8
  24. package/providers/context/resources/manuals/guides/package-outputs.md +14 -20
  25. package/providers/context/resources/manuals/reference/code-extractors.md +75 -18
  26. package/providers/context/resources/manuals/reference/package-templates.md +26 -33
  27. package/providers/context/resources/manuals/reference/project-api.md +156 -14
  28. package/providers/context/resources/manuals/reference/template-variables.md +4 -3
  29. package/providers/context/resources/procedures/close-and-build.md +5 -0
  30. package/providers/context/resources/procedures/code-extraction.md +86 -13
  31. package/providers/context/resources/procedures/document-optimization.md +43 -0
  32. package/providers/context/resources/procedures/document-revision.md +31 -0
  33. package/providers/context/resources/procedures/package-output.md +10 -34
  34. package/providers/context/resources/semantic/code-index/classification.md +267 -0
  35. package/providers/context/resources/semantic/code-index/templates/adapter.md +109 -0
  36. package/providers/context/resources/semantic/code-index/templates/api-service.md +116 -0
  37. package/providers/context/resources/semantic/code-index/templates/background-runtime.md +109 -0
  38. package/providers/context/resources/semantic/code-index/templates/cli-tool.md +129 -0
  39. package/providers/context/resources/semantic/code-index/templates/contract-source.md +73 -0
  40. package/providers/context/resources/semantic/code-index/templates/cross-module-chain.md +78 -0
  41. package/providers/context/resources/semantic/code-index/templates/derived-source.md +116 -0
  42. package/providers/context/resources/semantic/code-index/templates/domain-service.md +109 -0
  43. package/providers/context/resources/semantic/code-index/templates/event-flow.md +62 -0
  44. package/providers/context/resources/semantic/code-index/templates/monorepo-container.md +124 -0
  45. package/providers/context/resources/semantic/code-index/templates/persistence-boundary.md +56 -0
  46. package/providers/context/resources/semantic/code-index/templates/plugin-extension.md +52 -0
  47. package/providers/context/resources/semantic/code-index/templates/protocol-boundary.md +88 -0
  48. package/providers/context/resources/semantic/code-index/templates/sdk-library.md +132 -0
  49. package/providers/context/resources/semantic/code-index/templates/web-application.md +145 -0
  50. package/providers/context/resources/views/document-optimization-current.yaml +6 -0
  51. package/providers/context/resources/views/extraction-preview.yaml +6 -0
  52. package/providers/context/schemas/document-optimization-decisions.schema.json +34 -0
@@ -0,0 +1,109 @@
1
+ ---
2
+ id: semantic.code-index.template.domain-service
3
+ kind: procedure
4
+ media-type: text/markdown
5
+ ---
6
+
7
+ # Domain service template
8
+
9
+ Use for `service` modules whose stable value is a domain/use-case boundary or a
10
+ reusable service contract and its first-level orchestration. Do not classify a
11
+ directory as a service merely because it contains classes or functions named
12
+ `Service`.
13
+
14
+ Recommended `outputProfile`: `service-boundary`.
15
+
16
+ ## Evidence pass
17
+
18
+ Locate:
19
+
20
+ - service construction, registration, dependency injection, or public entry;
21
+ - supported operations and their callers or protocol handlers;
22
+ - use-case/domain orchestration and the point where ownership changes;
23
+ - repositories, transactions, caches, downstream clients, and event ports;
24
+ - invariants, idempotency, consistency, permission, or failure boundaries;
25
+ - configuration and runtime wiring that materially change the service;
26
+ - generated clients/models and internal helpers that should remain evidence.
27
+
28
+ Follow representative public operations through one orchestration layer. Stop
29
+ at the first stable domain, persistence, or downstream protocol boundary unless
30
+ the confirmed knowledge goal explicitly needs deeper implementation behavior.
31
+
32
+ ## Questions the knowledge must answer
33
+
34
+ 1. What responsibility and invariants does this service own?
35
+ 2. Which operations form its supported boundary, and who calls them?
36
+ 3. How do operations coordinate domain logic and dependencies?
37
+ 4. Where are transaction, consistency, idempotency, or state boundaries?
38
+ 5. What failures can cross the boundary, and how are they represented?
39
+ 6. Which dependencies are stable contracts versus internal implementation?
40
+
41
+ ## Suggested knowledge units
42
+
43
+ - **Service boundary**: responsibility, public operations, ownership,
44
+ invariants, callers, and stable dependencies.
45
+ - **Operation/use-case map**: operation to orchestration to first stable
46
+ downstream/persistence/event boundary.
47
+ - **State and consistency contract**: only when transaction, idempotency,
48
+ caching, or durable state is important and evidenced.
49
+ - **Dependency map**: concrete ports/clients/repositories and why each boundary
50
+ matters; avoid a raw import inventory.
51
+ - **Runtime/configuration guide**: only module-owned configuration, startup,
52
+ diagnostics, or release behavior.
53
+
54
+ ## Chapter blueprints
55
+
56
+ ```markdown
57
+ # <Domain service> boundary
58
+ ## Responsibility and non-responsibilities
59
+ ## Supported operations and callers
60
+ ## Domain rules and invariants
61
+ ## Dependency and port boundaries
62
+ ## State, transaction, and idempotency behavior
63
+ ## Failure and recovery behavior
64
+ ## Configuration and runtime wiring
65
+ ## Evidence and excluded implementation detail
66
+ ```
67
+
68
+ For a use-case family:
69
+
70
+ ```markdown
71
+ ## <Use-case family>
72
+ - Trigger or caller:
73
+ - Supported operation:
74
+ - Preconditions and invariants:
75
+ - Orchestration steps:
76
+ - Persistence/downstream/event boundary:
77
+ - Result and failure semantics:
78
+ - Source evidence:
79
+ ```
80
+
81
+ ## Granularity and relationships
82
+
83
+ Group operations that share responsibility, invariants, and dependency paths.
84
+ Split only when ownership or consistency semantics differ. Do not publish every
85
+ exported method: language visibility is not proof of a supported service API.
86
+ Every retained page must name supported operations, callers, ports, or state
87
+ identities and include source locators; a folder/class inventory is not a
88
+ service boundary.
89
+
90
+ Relationships should connect supported operations to real callers, ports,
91
+ repositories, or downstream operations. Do not infer a domain flow from
92
+ similar names or shared models.
93
+
94
+ ## Template composition examples
95
+
96
+ - An RPC implementation reads `api-service.md` for its inbound registration and
97
+ this template for domain orchestration.
98
+ - A service backed by durable storage selects the `persistence` facet and reads
99
+ `persistence-boundary.md`.
100
+ - A service activated only by events also reads `background-runtime.md` and the
101
+ `event-flow.md` template.
102
+
103
+ ## Revise or stop when
104
+
105
+ - no stable caller or public service boundary can be found;
106
+ - the proposed content is a class-by-class implementation listing;
107
+ - invariants or data semantics depend on unavailable documentation;
108
+ - generated models are being treated as the domain source of truth;
109
+ - an end-to-end chain crosses undeclared source modules.
@@ -0,0 +1,62 @@
1
+ ---
2
+ id: semantic.code-index.template.event-flow
3
+ kind: procedure
4
+ media-type: text/markdown
5
+ ---
6
+
7
+ # Event producer and consumer template
8
+
9
+ Use for `event-producer` or `event-consumer`. This template supplements the
10
+ owning runtime, service, application, or adapter page; selecting an event facet
11
+ does not by itself justify a separate end-to-end page.
12
+
13
+ ## Evidence pass
14
+
15
+ Locate:
16
+
17
+ - topic, stream, queue, hook, notification, or event identity;
18
+ - authoritative schema and versioning source;
19
+ - producer call and publication condition;
20
+ - subscription/consumer registration and handler dispatch;
21
+ - delivery, ordering, partitioning, retry, dead-letter, checkpoint, and
22
+ idempotency configuration;
23
+ - emitted side effects, observability, replay, and recovery entrypoints.
24
+
25
+ Do not derive delivery guarantees from framework defaults.
26
+
27
+ ## Questions the knowledge must answer
28
+
29
+ 1. What event is emitted or consumed, under what condition, and by whom?
30
+ 2. Where is publication or subscription registered?
31
+ 3. What delivery and recovery behavior is actually configured?
32
+ 4. What state or side effects change, and how can failed work be identified?
33
+
34
+ ## Chapter blueprint
35
+
36
+ ```markdown
37
+ # <Event flow or family>
38
+ ## Event identity and authoritative schema
39
+ ## Producer and publication condition
40
+ ## Delivery and routing semantics
41
+ ## Consumer registration and processing
42
+ ## Idempotency, retry, checkpoint, and failure destination
43
+ ## Side effects and observability
44
+ ## Source-backed producer-to-consumer relationship
45
+ ```
46
+
47
+ When only one endpoint is registered, keep an event record inside that
48
+ module's runtime or service map and omit the unavailable endpoint. Create a
49
+ separate event-flow page only when both sides and their shared event identity
50
+ are evidenced, or when one side alone has enough delivery and recovery
51
+ semantics to be a stable operator-facing topic.
52
+
53
+ ## Granularity and stop conditions
54
+
55
+ Group events with the same schema authority, delivery policy, ownership, and
56
+ handler family. Do not create pages per event field, generated payload type,
57
+ handler helper, or retry branch.
58
+
59
+ Every retained record must name the event identity, registration or call site,
60
+ and source locator. Revise or stop when delivery semantics would be guessed,
61
+ the shared identity is missing, or the output would contain empty producer or
62
+ consumer sections.
@@ -0,0 +1,124 @@
1
+ ---
2
+ id: semantic.code-index.template.monorepo-container
3
+ kind: procedure
4
+ media-type: text/markdown
5
+ ---
6
+
7
+ # Monorepo and module-container template
8
+
9
+ Use for `monorepo-container`: a workspace whose stable knowledge is the
10
+ registration, ownership, dependency, build, or release topology of multiple
11
+ child modules. Do not treat the physical repository as one application merely
12
+ because it has one Git remote.
13
+
14
+ Recommended `outputProfile`: `module-registry`.
15
+
16
+ ## Evidence pass
17
+
18
+ Locate:
19
+
20
+ - workspace/package/service manifests and child-module discovery rules;
21
+ - build graph, task orchestration, cache, dependency, and affected-scope logic;
22
+ - ownership, tags, boundaries, layering, or dependency constraints;
23
+ - shared configuration and tooling inherited by child modules;
24
+ - release groups, independent packages, deployment units, and version policy;
25
+ - generated, mirrored, vendored, fixture, example, and legacy subtrees;
26
+ - cross-module registries or contracts that warrant separate chain units.
27
+
28
+ Use declared manifests as the primary inventory. Directory discovery is a
29
+ fallback and must not silently include generated output or dependency caches.
30
+
31
+ ## Questions the knowledge must answer
32
+
33
+ 1. How are child modules discovered and identified?
34
+ 2. Which modules are applications, services, libraries, tools, or derived
35
+ sources, and who owns them?
36
+ 3. What dependency and layering rules connect or constrain them?
37
+ 4. How do build, test, cache, release, and deployment boundaries work?
38
+ 5. Which configuration is inherited globally versus owned by a child module?
39
+ 6. Which cross-module flows are important enough to index separately?
40
+ 7. Which large or generated subtrees are intentionally excluded?
41
+
42
+ ## Suggested knowledge units
43
+
44
+ - **Module registry**: child identity, path, type, owner, manifest, supported
45
+ entry, build/release unit, and lifecycle.
46
+ - **Dependency/topology map**: declared dependency directions, layering rules,
47
+ shared contracts, and source-backed edges.
48
+ - **Build and release map**: task graph, affected-scope behavior, cache,
49
+ artifacts, release groups, and deployment units.
50
+ - **Shared tooling/configuration**: only stable workspace-level behavior that
51
+ materially affects multiple children.
52
+ - **Cross-module chain unit**: independently owned, source-backed flow joining
53
+ several child modules; do not hide it inside the container summary.
54
+
55
+ Every user-visible child application, service, library, or CLI is classified as
56
+ its own index unit before deeper extraction.
57
+
58
+ For `extractTs()`, each child package must first be registered as its own source
59
+ boundary. One root source cannot be assigned to several index units because
60
+ source-level ownership would be ambiguous. If source registration intentionally
61
+ remains at repository level, use `extractCustom()` for the container registry
62
+ and assign aggregate candidates explicitly; do not use `include` to simulate
63
+ package ownership.
64
+
65
+ ## Chapter blueprints
66
+
67
+ ```markdown
68
+ # <Workspace> module registry
69
+ ## Workspace purpose and discovery rules
70
+ ## Child module inventory
71
+ ## Module types, ownership, and lifecycle
72
+ ## Dependency and layering constraints
73
+ ## Shared configuration and tooling
74
+ ## Build, test, cache, and release topology
75
+ ## Generated/mirrored boundaries and exclusions
76
+ ## Cross-module knowledge entrypoints
77
+ ```
78
+
79
+ One child-module record may use:
80
+
81
+ ```markdown
82
+ ## <Module>
83
+ - Path and manifest:
84
+ - Primary/additional types and facets:
85
+ - Responsibility and owner:
86
+ - Stable entrypoints:
87
+ - Direct module dependencies:
88
+ - Build/release unit:
89
+ - Lifecycle/source of truth:
90
+ - Deeper index unit:
91
+ ```
92
+
93
+ ## Granularity and relationships
94
+
95
+ Do not perform a repository-wide symbol scan as the container extraction. The
96
+ container owns topology; child units own reader-facing application/service/API
97
+ knowledge. Aggregate the registry when hundreds of children share the same
98
+ shape, but preserve exact identities and locators.
99
+
100
+ A workspace manifest, package registry, build graph, or release manifest is a
101
+ valid stable `entries` locator even when the container has no executable
102
+ process. Every registry page must retain exact child identities and locators;
103
+ a directory listing is not a module map.
104
+
105
+ Use manifest/build-graph evidence for dependency edges. Imports can supplement
106
+ but should not override declared workspace ownership or package boundaries.
107
+
108
+ ## Template composition examples
109
+
110
+ - A workspace containing a Web app, API gateway, CLI, and generated client
111
+ produces one registry plus separately classified child units.
112
+ - A workspace with independent release groups selects `build-release`; retain
113
+ the release map at the container level and package-specific compatibility in
114
+ each `sdk-library` unit.
115
+ - A cross-module request flow reads `cross-module-chain.md` and receives its
116
+ own output owner when it spans several child units.
117
+
118
+ ## Revise or stop when
119
+
120
+ - module discovery relies only on a broad filesystem scan;
121
+ - the plan treats all repository files as one index unit;
122
+ - child ownership or source-of-truth boundaries are ambiguous;
123
+ - generated/cache/vendor directories dominate projected output;
124
+ - dependencies are inferred solely from names without manifest or graph proof.
@@ -0,0 +1,56 @@
1
+ ---
2
+ id: semantic.code-index.template.persistence-boundary
3
+ kind: procedure
4
+ media-type: text/markdown
5
+ ---
6
+
7
+ # Persistence boundary template
8
+
9
+ Use for `persistence` when durable state, cache behavior, consistency, or
10
+ recovery is part of the confirmed reader goal. This template supplements the
11
+ service or runtime that owns the operations; it is not a request to catalog
12
+ every model or query.
13
+
14
+ ## Evidence pass
15
+
16
+ Locate:
17
+
18
+ - repository/data-access interface and concrete callers;
19
+ - datastore, table, collection, keyspace, entity, or file identity when
20
+ source-backed;
21
+ - transaction, consistency, cache, lock, idempotency, and concurrency bounds;
22
+ - read/write/query families and domain mapping;
23
+ - schema/migration authority, versioning, and operational recovery;
24
+ - generated models, query helpers, fixtures, and migrations that should remain
25
+ supporting evidence.
26
+
27
+ ## Questions the knowledge must answer
28
+
29
+ 1. Which service or domain operation owns each read or write family?
30
+ 2. What durable or cached state is addressed?
31
+ 3. Where are transaction, consistency, locking, and idempotency boundaries?
32
+ 4. Which schema or migration source is authoritative?
33
+ 5. What failure, migration, or recovery behavior is maintained?
34
+
35
+ ## Chapter blueprint
36
+
37
+ ```markdown
38
+ # <Persistence boundary>
39
+ ## Owned state and authoritative schema
40
+ ## Repository or data-access entry
41
+ ## Callers and operation families
42
+ ## Transaction, consistency, cache, and locking behavior
43
+ ## Failure, migration, and recovery boundaries
44
+ ## Source evidence and excluded query helpers
45
+ ```
46
+
47
+ ## Granularity and stop conditions
48
+
49
+ Group operations by owned state and consistency policy. Split only when schema
50
+ authority, transaction ownership, datastore, or recovery semantics differ.
51
+ Every page must identify real state and caller boundaries with source locators;
52
+ a directory or class inventory is not a persistence model.
53
+
54
+ Revise or stop when the datastore identity or owning operation is unknown,
55
+ transaction/consistency behavior would be guessed, or generated bindings and
56
+ migrations would dominate reader-facing pages.
@@ -0,0 +1,52 @@
1
+ ---
2
+ id: semantic.code-index.template.plugin-extension
3
+ kind: procedure
4
+ media-type: text/markdown
5
+ ---
6
+
7
+ # Plugin and extension boundary template
8
+
9
+ Use for `plugin-extension`. This file owns the complete plugin contract
10
+ blueprint. CLI, SDK, and adapter templates should point here and only add their
11
+ module-specific command, public API, or mapping context.
12
+
13
+ ## Evidence pass
14
+
15
+ Locate:
16
+
17
+ - discovery mechanism, manifest, registry, or installation contract;
18
+ - activation, deactivation, update, and removal lifecycle;
19
+ - contribution points, commands, hooks, providers, and host services;
20
+ - configuration, identity, compatibility, permissions, and isolation;
21
+ - failure containment, fallback, diagnostics, and version negotiation;
22
+ - public extension API and maintained examples when consumers implement it.
23
+
24
+ ## Questions the knowledge must answer
25
+
26
+ 1. How does the host discover, install, and activate an extension?
27
+ 2. What may the extension contribute or call?
28
+ 3. Which configuration, identity, permission, and compatibility rules apply?
29
+ 4. How are failures isolated, surfaced, and recovered?
30
+
31
+ ## Chapter blueprint
32
+
33
+ ```markdown
34
+ # <Plugin boundary>
35
+ ## Host and extension responsibilities
36
+ ## Discovery and installation
37
+ ## Activation and removal lifecycle
38
+ ## Contribution and capability contracts
39
+ ## Configuration, permissions, and isolation
40
+ ## Compatibility, failure, diagnostics, and recovery
41
+ ## Source-backed host-to-extension relationships
42
+ ```
43
+
44
+ ## Granularity and stop conditions
45
+
46
+ Prefer one contract per host/extension model, with compact records for coherent
47
+ contribution families. Do not create separate copies under CLI, adapter, and
48
+ SDK pages. Every page must name concrete manifests, registries, hooks, or
49
+ capability identities and their source locators.
50
+
51
+ Revise or stop when discovery or activation is inferred, permissions and
52
+ isolation would be guessed, or examples describe an unsupported extension API.
@@ -0,0 +1,88 @@
1
+ ---
2
+ id: semantic.code-index.template.protocol-boundary
3
+ kind: procedure
4
+ media-type: text/markdown
5
+ ---
6
+
7
+ # Protocol provider and consumer template
8
+
9
+ Use for `protocol-provider`, `protocol-consumer`, or `generated-contract`. This
10
+ template owns the canonical operation record. Application, API, service, SDK,
11
+ and adapter templates provide module context but must not create a second
12
+ registry for the same operations.
13
+
14
+ ## Evidence pass
15
+
16
+ Locate:
17
+
18
+ - the authoritative IDL, OpenAPI document, schema, service definition, or
19
+ explicit registration;
20
+ - provider operation identity and dispatch when the provider is in scope;
21
+ - consumer client construction and concrete operation call site when the
22
+ consumer is in scope;
23
+ - request, response, message, identity, and context mapping boundaries;
24
+ - authentication, authorization, timeout, retry, compatibility, and error
25
+ translation that are explicitly configured;
26
+ - generated bindings, their generator/version, and their upstream authority.
27
+
28
+ Do not infer protocol semantics from matching type names, generated model
29
+ fields, imports, or transport-library dependencies.
30
+
31
+ ## Questions the knowledge must answer
32
+
33
+ 1. Which concrete operation or coherent operation family is provided or used?
34
+ 2. Where is it registered or called, and where is its contract authoritative?
35
+ 3. What request, response, identity, credential, and context mapping occurs?
36
+ 4. What timeout, retry, compatibility, and failure behavior is source-backed?
37
+ 5. Which generated artifacts are locators rather than independent authority?
38
+
39
+ ## Canonical operation record
40
+
41
+ Use this record wherever another selected template asks for an operation,
42
+ route-to-client, or adapter mapping registry. Add type-specific detail around
43
+ it rather than copying the operation into another table.
44
+
45
+ ```markdown
46
+ ## <Protocol operation or family>
47
+ - Provider identity and registration:
48
+ - Consumer call site:
49
+ - Authoritative contract:
50
+ - Request, identity, and context mapping:
51
+ - Response and error mapping:
52
+ - Timeout, retry, and compatibility:
53
+ - Source-backed relationship:
54
+ ```
55
+
56
+ Provider-only records omit the consumer line. Consumer-only records omit
57
+ provider dispatch and remain inside the owning module page unless the opposite
58
+ endpoint is also a registered source and an evidenced cross-module flow is a
59
+ separate reader goal.
60
+
61
+ ## Generated and authoritative contracts
62
+
63
+ For `generated-contract`, record the upstream schema, generator, version/pin,
64
+ generated output boundary, and runtime consumer. Generated code may locate
65
+ operations and fields but does not become semantic authority by itself.
66
+
67
+ When the upstream authority is unavailable, a separate provenance unit may
68
+ still record the generated boundary, generator markers, current consumers, and
69
+ known authority gap with `outputProfile: "provenance-only"`. Keep the unit that
70
+ would explain field semantics or compatibility as `material-required`; do not
71
+ block the independently supported provenance record.
72
+
73
+ For a `contract-source` module, preserve exact operation identities, namespaces,
74
+ versions, compatibility declarations, imports, and generator targets. Do not
75
+ invent runtime dispatch or consumer behavior that the contract does not define.
76
+
77
+ ## Granularity and relationships
78
+
79
+ Aggregate operations by contract, ownership, and execution family. Split when
80
+ authority, mapping, security, versioning, or failure semantics materially
81
+ differ. Do not create pages for every generated request/response type or field.
82
+
83
+ Every page must contain concrete operation or schema identities and source
84
+ locators. A page that only says a module “uses an API” is not sufficient.
85
+
86
+ Revise or stop when operation identity is unavailable, authority is ambiguous,
87
+ security/error behavior would be guessed, or a claimed provider-consumer join
88
+ has no source-backed registration and call evidence.
@@ -0,0 +1,132 @@
1
+ ---
2
+ id: semantic.code-index.template.sdk-library
3
+ kind: procedure
4
+ media-type: text/markdown
5
+ ---
6
+
7
+ # SDK and shared library template
8
+
9
+ Use for `sdk-library`: reusable code packages, component libraries, client
10
+ SDKs, public framework extensions, or shared runtimes consumed through a
11
+ deliberately supported interface. A package being imported elsewhere is not
12
+ enough; confirm its supported entry and consumer contract.
13
+
14
+ Recommended `outputProfile`: `public-api-reference`.
15
+
16
+ ## Evidence pass
17
+
18
+ Locate:
19
+
20
+ - package manifest, exports map, public barrels, binary/native entry, or
21
+ documented import paths;
22
+ - initialization, providers, factories, configuration, and required runtime;
23
+ - public capability families, components, hooks, types, commands, or clients;
24
+ - supported extension/plugin points and lifecycle;
25
+ - compatibility, platform, peer dependency, and version constraints;
26
+ - maintained examples, tests, API comments, and migration/release notes;
27
+ - external protocol schemas and generated declarations or clients;
28
+ - internal implementation, fixtures, demos, and re-export chains that should
29
+ not become independent reader pages.
30
+
31
+ Use public exports plus maintained documentation together. An exported symbol
32
+ can still be incidental; a documented stable import path can remain public even
33
+ when it re-exports another implementation.
34
+
35
+ ## Questions the knowledge must answer
36
+
37
+ 1. Who should use this package and what capabilities does it promise?
38
+ 2. What are the supported import/initialization paths?
39
+ 3. How are public APIs grouped into concepts a consumer can navigate?
40
+ 4. What configuration, lifecycle, compatibility, and failure rules apply?
41
+ 5. Which examples demonstrate supported use rather than test-only behavior?
42
+ 6. Which declarations are generated, and where is their authority?
43
+ 7. How is the package built, versioned, and released when that is in scope?
44
+
45
+ ## Suggested knowledge units
46
+
47
+ - **Library/module map**: purpose, supported entrypoints, capability families,
48
+ runtime/peer requirements, extension points, and navigation.
49
+ - **Getting started or lifecycle**: installation assumptions, initialization,
50
+ configuration, teardown, and minimal supported examples evidenced by source.
51
+ - **Capability-family reference**: a coherent group of APIs/components with
52
+ usage, contracts, constraints, and related types.
53
+ - **Granular API/component reference**: one symbol or component per page only
54
+ when the package intentionally exposes a granular public contract and the
55
+ measured preview remains appropriate.
56
+ - **Compatibility and migration**: supported platforms/versions and evidenced
57
+ breaking or transitional behavior.
58
+ - **Build/release entry**: only module-owned packaging and release behavior.
59
+
60
+ ## Chapter blueprints
61
+
62
+ ```markdown
63
+ # <Library> module map
64
+ ## Purpose and intended consumers
65
+ ## Supported entrypoints and initialization
66
+ ## Capability families
67
+ ## Runtime, peer, and platform requirements
68
+ ## Configuration and lifecycle
69
+ ## Extension points and external protocols
70
+ ## Compatibility, build, and release
71
+ ## Examples, evidence, and exclusions
72
+ ```
73
+
74
+ For a capability family:
75
+
76
+ ```markdown
77
+ # <Capability family>
78
+ ## When to use it
79
+ ## Supported imports or components
80
+ ## Initialization and configuration
81
+ ## API/component contracts
82
+ ## Lifecycle, errors, and constraints
83
+ ## Minimal source-backed examples
84
+ ## Related capabilities and authoritative references
85
+ ```
86
+
87
+ For a granular reference page:
88
+
89
+ ```markdown
90
+ # <Public API or component>
91
+ ## Purpose
92
+ ## Import and signature/props
93
+ ## Required context and configuration
94
+ ## Behavior, lifecycle, and errors
95
+ ## Supported example
96
+ ## Compatibility and source evidence
97
+ ```
98
+
99
+ ## Granularity and relationships
100
+
101
+ Prefer capability families over one page per export. A symbol page is justified
102
+ when consumers search for that exact public identity and its contract contains
103
+ meaningful behavior beyond a signature. Do not copy complete function bodies,
104
+ private members, generated declarations, fixtures, or every re-export.
105
+
106
+ The 300-page limit remains per index unit. When a granular public surface would
107
+ cross it, keep the public identities navigable but aggregate them into
108
+ capability-family pages through `extractCustom()`; the limit is not raised for
109
+ large libraries, and splitting one `extractTs()` source into overlapping units
110
+ is not a valid workaround.
111
+
112
+ Relate public entries to capability families, configuration, examples, and
113
+ external protocols. Internal call graphs are secondary unless the knowledge
114
+ goal explicitly concerns extension or lifecycle behavior.
115
+
116
+ ## Template composition examples
117
+
118
+ - A component library may use granular component pages plus family indexes,
119
+ while its demo site is a separate `web-application` unit.
120
+ - A generated client reads `derived-source.md` and
121
+ `protocol-boundary.md`; document the supported client surface while naming
122
+ the upstream schema authority.
123
+ - A library with a plugin host also reads `adapter.md` and
124
+ `plugin-extension.md`.
125
+
126
+ ## Revise or stop when
127
+
128
+ - the public boundary cannot be distinguished from internal exports;
129
+ - examples are invented instead of derived from maintained usage or tests;
130
+ - generated declarations have no identifiable authority;
131
+ - every export or component is selected without a consumer-navigation reason;
132
+ - compatibility or lifecycle claims are unavailable but required by the goal.