@codedrifters/configulator 0.0.274 → 0.0.276
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/lib/index.d.mts +558 -319
- package/lib/index.d.ts +559 -320
- package/lib/index.js +535 -592
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +523 -580
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.d.mts
CHANGED
|
@@ -464,6 +464,13 @@ declare const DEFAULT_STATUS_LABELS: ReadonlyArray<LabelDefinition>;
|
|
|
464
464
|
declare const DEFAULT_PRIORITY_LABELS: ReadonlyArray<LabelDefinition>;
|
|
465
465
|
/** Default type labels — one per conventional commit type. */
|
|
466
466
|
declare const DEFAULT_TYPE_LABELS: ReadonlyArray<LabelDefinition>;
|
|
467
|
+
/**
|
|
468
|
+
* Hard limit GitHub's Labels API enforces on the `description` field.
|
|
469
|
+
* EndBug/label-sync rejects (and the API returns an opaque error for)
|
|
470
|
+
* any label whose description exceeds this length, which silently
|
|
471
|
+
* breaks the sync workflow downstream.
|
|
472
|
+
*/
|
|
473
|
+
declare const MAX_LABEL_DESCRIPTION_LENGTH = 100;
|
|
467
474
|
/**
|
|
468
475
|
* Adds a labels config file and a GitHub Actions workflow that syncs
|
|
469
476
|
* labels to the repository using EndBug/label-sync.
|
|
@@ -2226,117 +2233,6 @@ interface SkillEvalsConfig {
|
|
|
2226
2233
|
*/
|
|
2227
2234
|
readonly emitRunner?: boolean;
|
|
2228
2235
|
}
|
|
2229
|
-
/*******************************************************************************
|
|
2230
|
-
*
|
|
2231
|
-
* Workflow Diagrams Config
|
|
2232
|
-
*
|
|
2233
|
-
******************************************************************************/
|
|
2234
|
-
/**
|
|
2235
|
-
* Workflow-diagrams convention consumed by the `base` bundle and
|
|
2236
|
-
* every phased-agent bundle. Documents the single hand-authored
|
|
2237
|
-
* Mermaid-based diagrams page that visualises every agent's phase
|
|
2238
|
-
* graph and every cross-agent handoff, and enforces the
|
|
2239
|
-
* **diagram-touched-when-bundle-touched** rule: a change set that
|
|
2240
|
-
* modifies a bundle's phase graph must also update the matching
|
|
2241
|
-
* section in the diagrams page.
|
|
2242
|
-
*
|
|
2243
|
-
* The convention is deliberately content-free — configulator cannot
|
|
2244
|
-
* ship meaningful diagrams because each consuming repo enables a
|
|
2245
|
-
* different subset of bundles and customises agent labels, paths,
|
|
2246
|
-
* and taxonomies via the Group A injection points. Instead the
|
|
2247
|
-
* bundle renders the rule (what to author, when to update it) and
|
|
2248
|
-
* optionally emits a starter page + a checker script.
|
|
2249
|
-
*
|
|
2250
|
-
* Every field is optional. When the whole config is absent the
|
|
2251
|
-
* convention ships **enabled** with the documented default diagrams
|
|
2252
|
-
* path (`docs/src/content/docs/agents/workflows.md`), the default
|
|
2253
|
-
* bundle-path patterns, the hard-requirement phrasing, the starter
|
|
2254
|
-
* page opt-in, and the checker script opt-in.
|
|
2255
|
-
*
|
|
2256
|
-
* Malformed configs — empty / whitespace-only or absolute
|
|
2257
|
-
* `diagramsPath`, empty `bundlePathPatterns`, empty /
|
|
2258
|
-
* whitespace-only pattern entry — fail the build at synth time via
|
|
2259
|
-
* `validateWorkflowDiagramsConfig`.
|
|
2260
|
-
*
|
|
2261
|
-
* @see ./bundles/workflow-diagrams.ts#resolveWorkflowDiagrams
|
|
2262
|
-
* @see ./bundles/workflow-diagrams.ts#validateWorkflowDiagramsConfig
|
|
2263
|
-
* @see ./bundles/workflow-diagrams.ts#renderWorkflowDiagramsRuleContent
|
|
2264
|
-
*/
|
|
2265
|
-
interface WorkflowDiagramsConfig {
|
|
2266
|
-
/**
|
|
2267
|
-
* Master switch for the workflow-diagrams convention. When `false`,
|
|
2268
|
-
* the base bundle renders a short stub stating the project does not
|
|
2269
|
-
* enforce the convention; phased-agent bundles skip the
|
|
2270
|
-
* per-workflow "Workflow Diagram" injection and the optional helper
|
|
2271
|
-
* script / starter page are not emitted even if their `emit*`
|
|
2272
|
-
* flags are true.
|
|
2273
|
-
*
|
|
2274
|
-
* Defaults to `true` — the convention is on by default.
|
|
2275
|
-
*/
|
|
2276
|
-
readonly enabled?: boolean;
|
|
2277
|
-
/**
|
|
2278
|
-
* Repo-relative path to the single workflow-diagrams page. The
|
|
2279
|
-
* rendered rule cites this path as the on-disk home of every
|
|
2280
|
-
* Mermaid diagram; the checker script uses it as the sentinel path
|
|
2281
|
-
* that must appear in a change set when any bundle file is
|
|
2282
|
-
* touched.
|
|
2283
|
-
*
|
|
2284
|
-
* Must be a non-empty relative path (no leading `/`).
|
|
2285
|
-
*
|
|
2286
|
-
* Defaults to `docs/src/content/docs/agents/workflows.md`, which
|
|
2287
|
-
* matches the monorepo-wide singleton `/docs` Starlight site every
|
|
2288
|
-
* configulator-managed repo ships.
|
|
2289
|
-
*/
|
|
2290
|
-
readonly diagramsPath?: string;
|
|
2291
|
-
/**
|
|
2292
|
-
* Path patterns (bash-style globs) that identify "bundle files" —
|
|
2293
|
-
* the source files whose edits require the workflow-diagrams page
|
|
2294
|
-
* to be touched in the same change set. Rendered verbatim into
|
|
2295
|
-
* the rule body as a bullet list and emitted into the checker
|
|
2296
|
-
* script when `emitChecker: true`.
|
|
2297
|
-
*
|
|
2298
|
-
* Must be a non-empty array of non-empty strings.
|
|
2299
|
-
*
|
|
2300
|
-
* Defaults to the configulator-wide set covering in-tree bundle
|
|
2301
|
-
* source files, `.claude/agents/**.md` agent prompts, and
|
|
2302
|
-
* `.claude/skills/**.md` skill prompts.
|
|
2303
|
-
*/
|
|
2304
|
-
readonly bundlePathPatterns?: ReadonlyArray<string>;
|
|
2305
|
-
/**
|
|
2306
|
-
* Whether the convention emits a minimal starter diagrams page to
|
|
2307
|
-
* disk at `<diagramsPath>`. The starter carries the expected
|
|
2308
|
-
* structure (master diagram placeholder, one example agent section,
|
|
2309
|
-
* legend) so consumers adopting the convention on a green-field
|
|
2310
|
-
* repo have a working template to extend.
|
|
2311
|
-
*
|
|
2312
|
-
* Disabled by default because the page is hand-authored — an
|
|
2313
|
-
* emitted stub would conflict with existing content on repos
|
|
2314
|
-
* adopting the convention late.
|
|
2315
|
-
*/
|
|
2316
|
-
readonly emitStarterDiagram?: boolean;
|
|
2317
|
-
/**
|
|
2318
|
-
* Whether the convention emits the
|
|
2319
|
-
* `.claude/procedures/check-workflow-diagrams.sh` helper to disk.
|
|
2320
|
-
* The script walks a newline-separated list of changed files (from
|
|
2321
|
-
* stdin or positional arguments) and fails non-zero when any file
|
|
2322
|
-
* matches a bundle-path pattern but `<diagramsPath>` is not also
|
|
2323
|
-
* in the list.
|
|
2324
|
-
*
|
|
2325
|
-
* Disabled by default — the helper is opt-in for repos that want a
|
|
2326
|
-
* hard CI gate or pre-commit hook. Consumers that prefer to
|
|
2327
|
-
* enforce the rule via review discipline alone can leave it off.
|
|
2328
|
-
*/
|
|
2329
|
-
readonly emitChecker?: boolean;
|
|
2330
|
-
/**
|
|
2331
|
-
* Whether the rendered rule body phrases the diagram update as a
|
|
2332
|
-
* **hard requirement** (`MUST`) or a **strong recommendation**
|
|
2333
|
-
* (`SHOULD`). Defaults to `true` — the hard-requirement phrasing
|
|
2334
|
-
* matches the "enforced via CI" posture the convention is
|
|
2335
|
-
* designed for. Consumers that treat diagrams as aspirational can
|
|
2336
|
-
* soften the phrasing by setting this to `false`.
|
|
2337
|
-
*/
|
|
2338
|
-
readonly requireDiagramUpdate?: boolean;
|
|
2339
|
-
}
|
|
2340
2236
|
/*******************************************************************************
|
|
2341
2237
|
*
|
|
2342
2238
|
* Issue Templates Config
|
|
@@ -3028,40 +2924,6 @@ interface AgentConfigOptions {
|
|
|
3028
2924
|
* @see ./bundles/skill-evals.ts#renderSkillEvalsRuleContent
|
|
3029
2925
|
*/
|
|
3030
2926
|
readonly skillEvals?: SkillEvalsConfig;
|
|
3031
|
-
/**
|
|
3032
|
-
* Workflow-diagrams convention consumed by the `base` bundle and
|
|
3033
|
-
* every phased-agent bundle. Documents the single hand-authored
|
|
3034
|
-
* Mermaid-based diagrams page that visualises every agent's phase
|
|
3035
|
-
* graph and every cross-agent handoff, and enforces the
|
|
3036
|
-
* diagram-touched-when-bundle-touched rule: a change set that
|
|
3037
|
-
* modifies a bundle's phase graph must also update the matching
|
|
3038
|
-
* section in the diagrams page.
|
|
3039
|
-
*
|
|
3040
|
-
* When the whole config is omitted, the convention ships
|
|
3041
|
-
* **enabled** with the default diagrams path
|
|
3042
|
-
* (`docs/src/content/docs/agents/workflows.md`), the default
|
|
3043
|
-
* bundle-path patterns, the hard-requirement phrasing, and both
|
|
3044
|
-
* the starter page and the checker script opt-in.
|
|
3045
|
-
*
|
|
3046
|
-
* Supply `enabled: false` to disable the convention entirely,
|
|
3047
|
-
* `diagramsPath` to move the page, `bundlePathPatterns` to
|
|
3048
|
-
* replace the default pattern list, `emitStarterDiagram: true`
|
|
3049
|
-
* to seed a minimal starter page on disk, `emitChecker: true` to
|
|
3050
|
-
* ship the `.claude/procedures/check-workflow-diagrams.sh`
|
|
3051
|
-
* helper, or `requireDiagramUpdate: false` to soften the rule
|
|
3052
|
-
* phrasing from MUST to SHOULD.
|
|
3053
|
-
*
|
|
3054
|
-
* Malformed configs — empty / whitespace-only or absolute
|
|
3055
|
-
* `diagramsPath`, empty `bundlePathPatterns`, empty /
|
|
3056
|
-
* whitespace-only pattern entry — fail the build at synth time
|
|
3057
|
-
* via `validateWorkflowDiagramsConfig`.
|
|
3058
|
-
*
|
|
3059
|
-
* @see WorkflowDiagramsConfig
|
|
3060
|
-
* @see ./bundles/workflow-diagrams.ts#resolveWorkflowDiagrams
|
|
3061
|
-
* @see ./bundles/workflow-diagrams.ts#validateWorkflowDiagramsConfig
|
|
3062
|
-
* @see ./bundles/workflow-diagrams.ts#renderWorkflowDiagramsRuleContent
|
|
3063
|
-
*/
|
|
3064
|
-
readonly workflowDiagrams?: WorkflowDiagramsConfig;
|
|
3065
2927
|
/**
|
|
3066
2928
|
* Issue-templates convention consumed by the `base` bundle and
|
|
3067
2929
|
* every phased-agent bundle that files downstream issues.
|
|
@@ -5148,179 +5010,6 @@ declare function renderSkillEvalsBundleHook(se: ResolvedSkillEvals, skillLabel:
|
|
|
5148
5010
|
*/
|
|
5149
5011
|
declare function renderSkillEvalsRunnerScript(se: ResolvedSkillEvals): string;
|
|
5150
5012
|
|
|
5151
|
-
/**
|
|
5152
|
-
* Default master switch for the workflow-diagrams convention. When no
|
|
5153
|
-
* config is supplied the convention ships **enabled** so every
|
|
5154
|
-
* configulator-consuming repo carries the "diagram-touched-when-bundle-
|
|
5155
|
-
* touched" rule in its rendered `CLAUDE.md`.
|
|
5156
|
-
*
|
|
5157
|
-
* @see WorkflowDiagramsConfig
|
|
5158
|
-
*/
|
|
5159
|
-
declare const DEFAULT_WORKFLOW_DIAGRAMS_ENABLED = true;
|
|
5160
|
-
/**
|
|
5161
|
-
* Default repo-relative path for the workflow-diagrams page. Matches
|
|
5162
|
-
* the singleton `/docs` site layout the monorepo contract assumes: a
|
|
5163
|
-
* single Starlight docs site at `/docs` with sub-project agent pages
|
|
5164
|
-
* under `docs/src/content/docs/agents/`.
|
|
5165
|
-
*
|
|
5166
|
-
* The file is never generated by configulator (the convention is
|
|
5167
|
-
* explicit: diagrams are hand-authored for readability). Consumers
|
|
5168
|
-
* opt into the starter stub via `emitStarterDiagram: true`.
|
|
5169
|
-
*
|
|
5170
|
-
* @see WorkflowDiagramsConfig
|
|
5171
|
-
*/
|
|
5172
|
-
declare const DEFAULT_WORKFLOW_DIAGRAMS_PATH = "docs/src/content/docs/agents/workflows.md";
|
|
5173
|
-
/**
|
|
5174
|
-
* Default list of glob patterns that identify "bundle files" — the
|
|
5175
|
-
* source files whose edits require the workflow-diagrams page to be
|
|
5176
|
-
* touched in the same change set.
|
|
5177
|
-
*
|
|
5178
|
-
* The defaults cover the two canonical locations bundle-like content
|
|
5179
|
-
* lives in a configulator-consuming repo:
|
|
5180
|
-
*
|
|
5181
|
-
* - `packages/@codedrifters/configulator/src/agent/bundles/**.ts` —
|
|
5182
|
-
* the bundle authoring sites inside configulator itself.
|
|
5183
|
-
* - `.claude/agents/**.md` / `.claude/skills/**` — agent and skill
|
|
5184
|
-
* prompts in consuming repos that don't re-export configulator
|
|
5185
|
-
* bundles.
|
|
5186
|
-
*
|
|
5187
|
-
* Consumers can replace the list outright via `bundlePathPatterns`
|
|
5188
|
-
* when their agent sources live elsewhere (e.g. a monorepo that keeps
|
|
5189
|
-
* agents under `tools/agents/`).
|
|
5190
|
-
*
|
|
5191
|
-
* @see WorkflowDiagramsConfig
|
|
5192
|
-
*/
|
|
5193
|
-
declare const DEFAULT_WORKFLOW_DIAGRAMS_BUNDLE_PATH_PATTERNS: ReadonlyArray<string>;
|
|
5194
|
-
/**
|
|
5195
|
-
* Default for whether the convention emits a starter workflow-diagrams
|
|
5196
|
-
* page to disk at `<diagramsPath>`. Disabled by default because the
|
|
5197
|
-
* page is hand-authored — an emitted stub would conflict with
|
|
5198
|
-
* existing content on repos adopting the convention late.
|
|
5199
|
-
*
|
|
5200
|
-
* @see WorkflowDiagramsConfig
|
|
5201
|
-
*/
|
|
5202
|
-
declare const DEFAULT_WORKFLOW_DIAGRAMS_EMIT_STARTER = false;
|
|
5203
|
-
/**
|
|
5204
|
-
* Default for whether the convention emits the
|
|
5205
|
-
* `.claude/procedures/check-workflow-diagrams.sh` checker script. The
|
|
5206
|
-
* script walks the staged / changed-file set and fails when a bundle
|
|
5207
|
-
* file is touched without the diagrams page being touched too.
|
|
5208
|
-
*
|
|
5209
|
-
* Disabled by default because many consumers prefer to enforce the
|
|
5210
|
-
* rule via review discipline and the rendered documentation alone;
|
|
5211
|
-
* the script is opt-in for repos that want a hard CI gate or
|
|
5212
|
-
* pre-commit hook.
|
|
5213
|
-
*
|
|
5214
|
-
* @see WorkflowDiagramsConfig
|
|
5215
|
-
*/
|
|
5216
|
-
declare const DEFAULT_WORKFLOW_DIAGRAMS_EMIT_CHECKER = false;
|
|
5217
|
-
/**
|
|
5218
|
-
* Default for whether the rendered rule body asserts the diagram
|
|
5219
|
-
* update as a **hard requirement** vs. a **strong recommendation**.
|
|
5220
|
-
* Defaults to `true` — the whole point of the convention is that
|
|
5221
|
-
* diagrams stay in sync, so the hard-requirement phrasing is the
|
|
5222
|
-
* correct default. Consumers that treat diagrams as aspirational can
|
|
5223
|
-
* soften the phrasing by setting this to `false`.
|
|
5224
|
-
*
|
|
5225
|
-
* @see WorkflowDiagramsConfig
|
|
5226
|
-
*/
|
|
5227
|
-
declare const DEFAULT_WORKFLOW_DIAGRAMS_REQUIRE_UPDATE = true;
|
|
5228
|
-
/**
|
|
5229
|
-
* Fully-resolved workflow-diagrams settings. Every field is defaulted
|
|
5230
|
-
* so downstream renderers can reason about a single canonical shape.
|
|
5231
|
-
*/
|
|
5232
|
-
interface ResolvedWorkflowDiagrams {
|
|
5233
|
-
readonly enabled: boolean;
|
|
5234
|
-
readonly diagramsPath: string;
|
|
5235
|
-
readonly bundlePathPatterns: ReadonlyArray<string>;
|
|
5236
|
-
readonly emitStarterDiagram: boolean;
|
|
5237
|
-
readonly emitChecker: boolean;
|
|
5238
|
-
readonly requireDiagramUpdate: boolean;
|
|
5239
|
-
}
|
|
5240
|
-
/**
|
|
5241
|
-
* Resolve a (possibly absent) `WorkflowDiagramsConfig` into a
|
|
5242
|
-
* canonical `ResolvedWorkflowDiagrams` with every field filled in.
|
|
5243
|
-
* Unset fields cascade from their documented defaults.
|
|
5244
|
-
*
|
|
5245
|
-
* Malformed configs — empty / whitespace-only or absolute
|
|
5246
|
-
* `diagramsPath`, empty `bundlePathPatterns`, empty /
|
|
5247
|
-
* whitespace-only path entry — throw a descriptive `Error`.
|
|
5248
|
-
*/
|
|
5249
|
-
declare function resolveWorkflowDiagrams(config?: WorkflowDiagramsConfig): ResolvedWorkflowDiagrams;
|
|
5250
|
-
/**
|
|
5251
|
-
* Synth-time validation hook. Throws a descriptive `Error` when the
|
|
5252
|
-
* supplied `WorkflowDiagramsConfig` is malformed. Called by
|
|
5253
|
-
* `AgentConfig.preSynthesize` before any rendering so a misconfigured
|
|
5254
|
-
* convention fails the build instead of silently shipping broken
|
|
5255
|
-
* workflow-diagrams guidance. Returns the resolved config unchanged
|
|
5256
|
-
* so callers can write
|
|
5257
|
-
* `const wd = validateWorkflowDiagramsConfig(config)` in one line.
|
|
5258
|
-
*
|
|
5259
|
-
* Malformed cases rejected here:
|
|
5260
|
-
*
|
|
5261
|
-
* - `diagramsPath` empty, whitespace-only, or absolute.
|
|
5262
|
-
* - `bundlePathPatterns` not an array, empty, or contains an empty /
|
|
5263
|
-
* whitespace-only entry.
|
|
5264
|
-
*/
|
|
5265
|
-
declare function validateWorkflowDiagramsConfig(config?: WorkflowDiagramsConfig): ResolvedWorkflowDiagrams;
|
|
5266
|
-
/**
|
|
5267
|
-
* Render the full body for the `workflow-diagrams-convention` rule
|
|
5268
|
-
* shipped by the `base` bundle. The rule documents:
|
|
5269
|
-
*
|
|
5270
|
-
* - Why the convention exists (diagram / prose drift).
|
|
5271
|
-
* - The on-disk contract — a single Mermaid-based page at
|
|
5272
|
-
* `<diagramsPath>` with one diagram per agent + a master
|
|
5273
|
-
* cross-agent diagram.
|
|
5274
|
-
* - The **diagram-touched-when-bundle-touched** rule, phrased as a
|
|
5275
|
-
* hard requirement or a strong recommendation per
|
|
5276
|
-
* `requireDiagramUpdate`.
|
|
5277
|
-
* - The set of paths the rule applies to.
|
|
5278
|
-
* - The optional checker script (cross-referenced only when emitted).
|
|
5279
|
-
*
|
|
5280
|
-
* When the convention is disabled, the rule renders a short stub.
|
|
5281
|
-
*/
|
|
5282
|
-
declare function renderWorkflowDiagramsRuleContent(wd: ResolvedWorkflowDiagrams): string;
|
|
5283
|
-
/**
|
|
5284
|
-
* Render the short workflow-diagrams hook section injected into a
|
|
5285
|
-
* phased-agent bundle's workflow rule. The section cites the full
|
|
5286
|
-
* contract documented in the base bundle's
|
|
5287
|
-
* `workflow-diagrams-convention` rule so individual bundles stay DRY.
|
|
5288
|
-
*
|
|
5289
|
-
* When the convention is disabled, the function returns an empty
|
|
5290
|
-
* string so callers can no-op their append path.
|
|
5291
|
-
*/
|
|
5292
|
-
declare function renderWorkflowDiagramsBundleHook(wd: ResolvedWorkflowDiagrams, bundleLabel: string): string;
|
|
5293
|
-
/**
|
|
5294
|
-
* Render a minimal starter workflow-diagrams page — a top-level
|
|
5295
|
-
* heading, the master-diagram placeholder, and a single example
|
|
5296
|
-
* agent section. Exported so `AgentConfig` can emit it to disk when
|
|
5297
|
-
* the consumer opts in via `emitStarterDiagram: true`.
|
|
5298
|
-
*
|
|
5299
|
-
* The starter is deliberately sparse: it documents the expected
|
|
5300
|
-
* structure without committing the consumer to a particular agent
|
|
5301
|
-
* list. Repos that already maintain a hand-authored diagrams page
|
|
5302
|
-
* should leave `emitStarterDiagram` off — the emission would
|
|
5303
|
-
* overwrite their content.
|
|
5304
|
-
*/
|
|
5305
|
-
declare function renderWorkflowDiagramsStarterPage(_wd: ResolvedWorkflowDiagrams): string;
|
|
5306
|
-
/**
|
|
5307
|
-
* Render the `.claude/procedures/check-workflow-diagrams.sh` helper
|
|
5308
|
-
* script. Exported so `AgentConfig` can register it as an
|
|
5309
|
-
* `AgentProcedure` when the consumer opts in via `emitChecker: true`.
|
|
5310
|
-
*
|
|
5311
|
-
* The script accepts the list of changed files as either:
|
|
5312
|
-
*
|
|
5313
|
-
* 1. Positional arguments (one file per arg).
|
|
5314
|
-
* 2. Newline-separated entries on stdin (when no args supplied) —
|
|
5315
|
-
* pipe `git diff --name-only` directly into it.
|
|
5316
|
-
*
|
|
5317
|
-
* It fails non-zero when any changed file matches a bundle-path
|
|
5318
|
-
* pattern and the configured diagrams path is not also in the list.
|
|
5319
|
-
* It exits `0` when no bundle files were touched or when the
|
|
5320
|
-
* diagrams page was touched alongside them.
|
|
5321
|
-
*/
|
|
5322
|
-
declare function renderWorkflowDiagramsCheckerScript(wd: ResolvedWorkflowDiagrams): string;
|
|
5323
|
-
|
|
5324
5013
|
/**
|
|
5325
5014
|
* Build the requirements-analyst bundle with the supplied resolved
|
|
5326
5015
|
* paths.
|
|
@@ -6701,6 +6390,556 @@ declare const DEFAULT_SAMPLE_COMPILER_OPTIONS: ts.CompilerOptions;
|
|
|
6701
6390
|
*/
|
|
6702
6391
|
declare function compileFencedSamples(options?: CompileFencedSamplesOptions): Array<SampleCompilationFailure>;
|
|
6703
6392
|
|
|
6393
|
+
/**
|
|
6394
|
+
* Schema definitions for the docs-sync scan-phase audit report.
|
|
6395
|
+
*
|
|
6396
|
+
* The report is the durable output of Phase 1 (Scan) of the docs-sync
|
|
6397
|
+
* pipeline (parent epic #448). Phase 1 walks the repo, runs every
|
|
6398
|
+
* registered drift check, and persists a single combined report to
|
|
6399
|
+
* `.claude/state/docs-sync/<N>-audit.json` (where `<N>` is the
|
|
6400
|
+
* tracking-issue number). Phase 2 (Fix) reads the persisted report
|
|
6401
|
+
* and applies mechanical fixes — the two phases never share an
|
|
6402
|
+
* in-memory handle, so the JSON shape on disk is the contract
|
|
6403
|
+
* between them.
|
|
6404
|
+
*
|
|
6405
|
+
* #518 ships the **schema and the orchestrator skeleton only**. The
|
|
6406
|
+
* actual drift checks (API/TSDoc/reference, link, fenced-sample) are
|
|
6407
|
+
* wired in by children #519 and #520 by passing additional
|
|
6408
|
+
* `AuditCheckRunner` instances to {@link runScan}. An empty
|
|
6409
|
+
* runner list is the supported scaffold-time configuration and
|
|
6410
|
+
* produces a schema-compliant report with empty findings in every
|
|
6411
|
+
* category.
|
|
6412
|
+
*
|
|
6413
|
+
* The schema is intentionally **keyed by drift-check category** at
|
|
6414
|
+
* the top level (`apiDiff`, `tsdocCoverage`, `referenceMismatches`,
|
|
6415
|
+
* `linkFailures`, `sampleFailures`) so consumers can render or
|
|
6416
|
+
* filter by category without re-grouping a flat list. Each
|
|
6417
|
+
* category-keyed array carries category-specific finding shapes,
|
|
6418
|
+
* and a flat `findings` array re-aggregates the same records with
|
|
6419
|
+
* `category` and `severity` fields attached so the report doubles
|
|
6420
|
+
* as a backlog source for downstream tooling.
|
|
6421
|
+
*/
|
|
6422
|
+
/**
|
|
6423
|
+
* Drift-check categories the docs-sync scan phase can produce
|
|
6424
|
+
* findings in. Exhaustive — adding a new category here is a schema
|
|
6425
|
+
* change that requires bumping {@link DOCS_SYNC_AUDIT_SCHEMA_VERSION}
|
|
6426
|
+
* and updating every consumer that switches on the literal.
|
|
6427
|
+
*/
|
|
6428
|
+
declare const AuditCategory: {
|
|
6429
|
+
/**
|
|
6430
|
+
* Findings produced by the public-API diff check that surfaces
|
|
6431
|
+
* added, renamed, or removed exports between the current branch
|
|
6432
|
+
* and the recorded baseline. Wired in by child issue #519.
|
|
6433
|
+
*/
|
|
6434
|
+
readonly ApiDiff: "apiDiff";
|
|
6435
|
+
/**
|
|
6436
|
+
* Findings produced by the TSDoc-coverage check that flags public
|
|
6437
|
+
* exports without a one-sentence summary. Wired in by child issue
|
|
6438
|
+
* #519.
|
|
6439
|
+
*/
|
|
6440
|
+
readonly TsdocCoverage: "tsdocCoverage";
|
|
6441
|
+
/**
|
|
6442
|
+
* Findings produced by the doc-reference cross-index check that
|
|
6443
|
+
* flags inline-code symbol mentions whose target is missing or
|
|
6444
|
+
* has changed. Wired in by child issue #519.
|
|
6445
|
+
*/
|
|
6446
|
+
readonly ReferenceMismatches: "referenceMismatches";
|
|
6447
|
+
/**
|
|
6448
|
+
* Findings produced by the link-integrity check (internal via
|
|
6449
|
+
* `astro check`, external via `lychee`). Wired in by child issue
|
|
6450
|
+
* #520.
|
|
6451
|
+
*/
|
|
6452
|
+
readonly LinkFailures: "linkFailures";
|
|
6453
|
+
/**
|
|
6454
|
+
* Findings produced by the fenced-sample compilation check that
|
|
6455
|
+
* flags ` ```ts ` / ` ```typescript ` / ` ```tsx ` blocks in the
|
|
6456
|
+
* docs that fail `tsc`. Wired in by child issue #520.
|
|
6457
|
+
*/
|
|
6458
|
+
readonly SampleFailures: "sampleFailures";
|
|
6459
|
+
};
|
|
6460
|
+
/**
|
|
6461
|
+
* String-literal type matching the values of {@link AuditCategory}.
|
|
6462
|
+
*/
|
|
6463
|
+
type AuditCategory = (typeof AuditCategory)[keyof typeof AuditCategory];
|
|
6464
|
+
/**
|
|
6465
|
+
* Severity ladder applied to every finding before persistence. The
|
|
6466
|
+
* ladder mirrors the parent epic's behavior-on-drift contract —
|
|
6467
|
+
* mechanical fixes auto-apply, advisory findings post a non-blocking
|
|
6468
|
+
* note, blocking findings hand off to `pr-reviewer` via
|
|
6469
|
+
* `review:human-required`.
|
|
6470
|
+
*/
|
|
6471
|
+
declare const AuditSeverity: {
|
|
6472
|
+
/**
|
|
6473
|
+
* The finding has a deterministic mechanical fix that the Phase 2
|
|
6474
|
+
* (Fix) agent will auto-apply (TSDoc stubs, dead-link updates,
|
|
6475
|
+
* registry sync, etc.).
|
|
6476
|
+
*/
|
|
6477
|
+
readonly Mechanical: "mechanical";
|
|
6478
|
+
/**
|
|
6479
|
+
* The finding deserves human attention but does not block the PR.
|
|
6480
|
+
* Surfaced as a non-blocking note on the sticky `## Docs sync`
|
|
6481
|
+
* comment.
|
|
6482
|
+
*/
|
|
6483
|
+
readonly Advisory: "advisory";
|
|
6484
|
+
/**
|
|
6485
|
+
* The finding blocks the PR. Per the parent epic this is reserved
|
|
6486
|
+
* for the two narrow cases of confirmed broken external links and
|
|
6487
|
+
* fenced TS samples that fail to compile.
|
|
6488
|
+
*/
|
|
6489
|
+
readonly Blocking: "blocking";
|
|
6490
|
+
};
|
|
6491
|
+
/**
|
|
6492
|
+
* String-literal type matching the values of {@link AuditSeverity}.
|
|
6493
|
+
*/
|
|
6494
|
+
type AuditSeverity = (typeof AuditSeverity)[keyof typeof AuditSeverity];
|
|
6495
|
+
/**
|
|
6496
|
+
* Invocation mode of the scan phase. Determines how downstream
|
|
6497
|
+
* tooling treats the report — `pr` reports run against a single
|
|
6498
|
+
* branch and feed `pr-reviewer`; `audit` reports walk the whole
|
|
6499
|
+
* repo and feed the prioritized `docs:write` backlog.
|
|
6500
|
+
*/
|
|
6501
|
+
declare const AuditMode: {
|
|
6502
|
+
readonly Pr: "pr";
|
|
6503
|
+
readonly Audit: "audit";
|
|
6504
|
+
};
|
|
6505
|
+
/**
|
|
6506
|
+
* String-literal type matching the values of {@link AuditMode}.
|
|
6507
|
+
*/
|
|
6508
|
+
type AuditMode = (typeof AuditMode)[keyof typeof AuditMode];
|
|
6509
|
+
/**
|
|
6510
|
+
* File-and-line location attached to most finding shapes. The
|
|
6511
|
+
* `file` field is always a path relative to the repo root so reports
|
|
6512
|
+
* are portable across machines; absolute paths must be normalized
|
|
6513
|
+
* before they reach the report.
|
|
6514
|
+
*/
|
|
6515
|
+
interface AuditLocation {
|
|
6516
|
+
/**
|
|
6517
|
+
* Path relative to {@link AuditReport.repoRoot}. Empty string is
|
|
6518
|
+
* permitted for findings that have no associated file (e.g. an
|
|
6519
|
+
* `apiDiff` removed-export finding that lost its source location).
|
|
6520
|
+
*/
|
|
6521
|
+
readonly file: string;
|
|
6522
|
+
/**
|
|
6523
|
+
* 1-indexed line number when known. `0` means "line is not known"
|
|
6524
|
+
* — downstream consumers must treat `0` as missing rather than as
|
|
6525
|
+
* the literal first line.
|
|
6526
|
+
*/
|
|
6527
|
+
readonly line: number;
|
|
6528
|
+
}
|
|
6529
|
+
/**
|
|
6530
|
+
* Common fields every finding shape carries. The category-specific
|
|
6531
|
+
* record types below extend this interface with additional fields.
|
|
6532
|
+
*/
|
|
6533
|
+
interface AuditFindingBase {
|
|
6534
|
+
/**
|
|
6535
|
+
* Drift-check category that produced the finding. Mirrors the key
|
|
6536
|
+
* on the {@link AuditReport} that the finding is filed under.
|
|
6537
|
+
*/
|
|
6538
|
+
readonly category: AuditCategory;
|
|
6539
|
+
/**
|
|
6540
|
+
* Severity classification per the {@link AuditSeverity} ladder.
|
|
6541
|
+
*/
|
|
6542
|
+
readonly severity: AuditSeverity;
|
|
6543
|
+
/**
|
|
6544
|
+
* Source location the finding is anchored at. Empty location is
|
|
6545
|
+
* tolerated for findings with no concrete anchor.
|
|
6546
|
+
*/
|
|
6547
|
+
readonly location: AuditLocation;
|
|
6548
|
+
/**
|
|
6549
|
+
* Stable subject identifier. For symbol findings this is the
|
|
6550
|
+
* exported symbol name; for link findings the URL; for sample
|
|
6551
|
+
* findings the docPath plus fence index. Used by Phase 2 to
|
|
6552
|
+
* deduplicate findings across runs.
|
|
6553
|
+
*/
|
|
6554
|
+
readonly subject: string;
|
|
6555
|
+
/**
|
|
6556
|
+
* One-sentence human-readable description of the finding.
|
|
6557
|
+
* Phase 2 surfaces this directly in the sticky PR comment, so
|
|
6558
|
+
* keep it short and self-contained — no markdown links to
|
|
6559
|
+
* external context, and never includes generated prose over the
|
|
6560
|
+
* 100-word stub budget.
|
|
6561
|
+
*/
|
|
6562
|
+
readonly details: string;
|
|
6563
|
+
/**
|
|
6564
|
+
* Optional hint for the Phase 2 fix agent. When present and the
|
|
6565
|
+
* severity is `mechanical`, Phase 2 may use this string to
|
|
6566
|
+
* compute the auto-applied edit. Free-form; downstream consumers
|
|
6567
|
+
* should treat unknown hints as no-op.
|
|
6568
|
+
*/
|
|
6569
|
+
readonly fixHint?: string;
|
|
6570
|
+
}
|
|
6571
|
+
/**
|
|
6572
|
+
* Finding produced by the public-API diff check. Wired in by #519.
|
|
6573
|
+
*/
|
|
6574
|
+
interface ApiDiffFinding extends AuditFindingBase {
|
|
6575
|
+
readonly category: typeof AuditCategory.ApiDiff;
|
|
6576
|
+
/**
|
|
6577
|
+
* Kind of API change observed. The literal `added` covers a new
|
|
6578
|
+
* export; `removed` covers a deletion; `changed` covers a
|
|
6579
|
+
* signature change that does not rename or remove the symbol.
|
|
6580
|
+
*/
|
|
6581
|
+
readonly change: "added" | "removed" | "changed";
|
|
6582
|
+
/**
|
|
6583
|
+
* Public name of the symbol whose surface changed.
|
|
6584
|
+
*/
|
|
6585
|
+
readonly symbol: string;
|
|
6586
|
+
}
|
|
6587
|
+
/**
|
|
6588
|
+
* Finding produced by the TSDoc-coverage check. Wired in by #519.
|
|
6589
|
+
*/
|
|
6590
|
+
interface TsdocCoverageFinding extends AuditFindingBase {
|
|
6591
|
+
readonly category: typeof AuditCategory.TsdocCoverage;
|
|
6592
|
+
/**
|
|
6593
|
+
* Public name of the symbol that is missing or has thin TSDoc.
|
|
6594
|
+
*/
|
|
6595
|
+
readonly symbol: string;
|
|
6596
|
+
/**
|
|
6597
|
+
* Coverage shortfall the finding reports. `missing-summary`
|
|
6598
|
+
* means no TSDoc at all; `thin-summary` means the summary exists
|
|
6599
|
+
* but is shorter than the configured threshold; `missing-params`
|
|
6600
|
+
* / `missing-returns` mean the signature has parameters or a
|
|
6601
|
+
* return value with no matching block tag.
|
|
6602
|
+
*/
|
|
6603
|
+
readonly shortfall: "missing-summary" | "thin-summary" | "missing-params" | "missing-returns";
|
|
6604
|
+
}
|
|
6605
|
+
/**
|
|
6606
|
+
* Finding produced by the doc-reference cross-index check. Wired in
|
|
6607
|
+
* by #519.
|
|
6608
|
+
*/
|
|
6609
|
+
interface ReferenceMismatchFinding extends AuditFindingBase {
|
|
6610
|
+
readonly category: typeof AuditCategory.ReferenceMismatches;
|
|
6611
|
+
/**
|
|
6612
|
+
* Inline-code symbol referenced in the markdown source.
|
|
6613
|
+
*/
|
|
6614
|
+
readonly symbol: string;
|
|
6615
|
+
/**
|
|
6616
|
+
* Why the reference is flagged. `unknown-symbol` means the
|
|
6617
|
+
* symbol does not appear in the supplied known-symbols set;
|
|
6618
|
+
* `signature-changed` means the symbol still resolves but its
|
|
6619
|
+
* type signature differs from the cached snapshot.
|
|
6620
|
+
*/
|
|
6621
|
+
readonly mismatch: "unknown-symbol" | "signature-changed";
|
|
6622
|
+
}
|
|
6623
|
+
/**
|
|
6624
|
+
* Finding produced by the link-integrity check. Wired in by #520.
|
|
6625
|
+
*/
|
|
6626
|
+
interface LinkFailureFinding extends AuditFindingBase {
|
|
6627
|
+
readonly category: typeof AuditCategory.LinkFailures;
|
|
6628
|
+
/**
|
|
6629
|
+
* URL or relative path that failed integrity checks.
|
|
6630
|
+
*/
|
|
6631
|
+
readonly url: string;
|
|
6632
|
+
/**
|
|
6633
|
+
* Whether the link is internal (resolved by `astro check`) or
|
|
6634
|
+
* external (resolved by `lychee`).
|
|
6635
|
+
*/
|
|
6636
|
+
readonly kind: "internal" | "external";
|
|
6637
|
+
/**
|
|
6638
|
+
* Short tool-supplied diagnostic explaining the failure.
|
|
6639
|
+
*/
|
|
6640
|
+
readonly reason: string;
|
|
6641
|
+
}
|
|
6642
|
+
/**
|
|
6643
|
+
* Finding produced by the fenced-sample compilation check. Wired in
|
|
6644
|
+
* by #520.
|
|
6645
|
+
*/
|
|
6646
|
+
interface SampleFailureFinding extends AuditFindingBase {
|
|
6647
|
+
readonly category: typeof AuditCategory.SampleFailures;
|
|
6648
|
+
/**
|
|
6649
|
+
* 0-indexed position of the fenced block within the markdown file.
|
|
6650
|
+
*/
|
|
6651
|
+
readonly fenceIndex: number;
|
|
6652
|
+
/**
|
|
6653
|
+
* Language tag the sample carried (e.g. `ts`, `typescript`,
|
|
6654
|
+
* `tsx`, `typescriptreact`).
|
|
6655
|
+
*/
|
|
6656
|
+
readonly lang: string;
|
|
6657
|
+
/**
|
|
6658
|
+
* Compiler diagnostics produced by `tsc` against the sample.
|
|
6659
|
+
*/
|
|
6660
|
+
readonly diagnostics: ReadonlyArray<string>;
|
|
6661
|
+
}
|
|
6662
|
+
/**
|
|
6663
|
+
* Discriminated union of every category-specific finding shape.
|
|
6664
|
+
*/
|
|
6665
|
+
type AuditFinding = ApiDiffFinding | TsdocCoverageFinding | ReferenceMismatchFinding | LinkFailureFinding | SampleFailureFinding;
|
|
6666
|
+
/**
|
|
6667
|
+
* Schema version embedded on every persisted audit report. Bump on
|
|
6668
|
+
* any breaking change to the report shape so downstream consumers
|
|
6669
|
+
* can refuse incompatible files rather than mis-parsing them.
|
|
6670
|
+
*
|
|
6671
|
+
* Versioning is **integer-monotonic**: the producer of a v2 report
|
|
6672
|
+
* is responsible for keeping the v1 fields parseable when
|
|
6673
|
+
* possible, but a v1 reader must reject a v2 report it does not
|
|
6674
|
+
* understand.
|
|
6675
|
+
*/
|
|
6676
|
+
declare const DOCS_SYNC_AUDIT_SCHEMA_VERSION = 1;
|
|
6677
|
+
/**
|
|
6678
|
+
* Top-level audit-report shape persisted to
|
|
6679
|
+
* `.claude/state/docs-sync/<N>-audit.json`. The category-keyed
|
|
6680
|
+
* arrays are the durable surface; the flat `findings` array is a
|
|
6681
|
+
* convenience aggregation of the same records.
|
|
6682
|
+
*/
|
|
6683
|
+
interface AuditReport {
|
|
6684
|
+
/**
|
|
6685
|
+
* Schema version embedded on every persisted report. Always
|
|
6686
|
+
* equal to {@link DOCS_SYNC_AUDIT_SCHEMA_VERSION} at write time.
|
|
6687
|
+
*/
|
|
6688
|
+
readonly schemaVersion: number;
|
|
6689
|
+
/**
|
|
6690
|
+
* Tracking-issue number the scan ran for. Determines the
|
|
6691
|
+
* filename when persisted (`<issueNumber>-audit.json`).
|
|
6692
|
+
*/
|
|
6693
|
+
readonly issueNumber: number;
|
|
6694
|
+
/**
|
|
6695
|
+
* Invocation mode — `pr` for diff-scoped runs invoked through
|
|
6696
|
+
* `/docs-sync-pr`, `audit` for full-repo runs invoked through
|
|
6697
|
+
* `/docs-sync-audit`.
|
|
6698
|
+
*/
|
|
6699
|
+
readonly mode: AuditMode;
|
|
6700
|
+
/**
|
|
6701
|
+
* ISO 8601 UTC timestamp the scan completed at. Always written
|
|
6702
|
+
* with `Z` suffix; consumers parse with `Date(...)`.
|
|
6703
|
+
*/
|
|
6704
|
+
readonly generatedAt: string;
|
|
6705
|
+
/**
|
|
6706
|
+
* Absolute path to the repository root the scan ran against.
|
|
6707
|
+
* Persisted so a downstream consumer reading the report on a
|
|
6708
|
+
* different checkout can rewrite paths relative to its own
|
|
6709
|
+
* root.
|
|
6710
|
+
*/
|
|
6711
|
+
readonly repoRoot: string;
|
|
6712
|
+
/**
|
|
6713
|
+
* Optional free-form scope label attached at the issue level
|
|
6714
|
+
* (e.g. `pr:feat/518-foo`, `audit:packages/configulator`).
|
|
6715
|
+
* Empty string when no scope was supplied.
|
|
6716
|
+
*/
|
|
6717
|
+
readonly scope: string;
|
|
6718
|
+
/**
|
|
6719
|
+
* Findings grouped by drift-check category. Every category key
|
|
6720
|
+
* is always present and always an array — empty arrays are
|
|
6721
|
+
* persisted explicitly so consumers never have to test for
|
|
6722
|
+
* presence.
|
|
6723
|
+
*/
|
|
6724
|
+
readonly categories: {
|
|
6725
|
+
readonly apiDiff: ReadonlyArray<ApiDiffFinding>;
|
|
6726
|
+
readonly tsdocCoverage: ReadonlyArray<TsdocCoverageFinding>;
|
|
6727
|
+
readonly referenceMismatches: ReadonlyArray<ReferenceMismatchFinding>;
|
|
6728
|
+
readonly linkFailures: ReadonlyArray<LinkFailureFinding>;
|
|
6729
|
+
readonly sampleFailures: ReadonlyArray<SampleFailureFinding>;
|
|
6730
|
+
};
|
|
6731
|
+
/**
|
|
6732
|
+
* Flat re-aggregation of every category-keyed finding into a
|
|
6733
|
+
* single deterministically-ordered array. Sorted by `severity`
|
|
6734
|
+
* (`blocking` first, then `advisory`, then `mechanical`), then
|
|
6735
|
+
* `category` (alphabetical), then `location.file`,
|
|
6736
|
+
* `location.line`, `subject`. Provided so consumers that don't
|
|
6737
|
+
* need the category grouping can iterate one array and see the
|
|
6738
|
+
* merge-blocking findings at the top.
|
|
6739
|
+
*/
|
|
6740
|
+
readonly findings: ReadonlyArray<AuditFinding>;
|
|
6741
|
+
}
|
|
6742
|
+
/**
|
|
6743
|
+
* JSON-Schema-shaped descriptor for {@link AuditReport}. Returned by
|
|
6744
|
+
* {@link auditReportJsonSchema} so downstream tooling (e.g. ajv)
|
|
6745
|
+
* can validate persisted reports without re-importing the TS
|
|
6746
|
+
* types. The shape is hand-authored and deliberately permissive on
|
|
6747
|
+
* forward-compatible additions (extra category keys are forbidden;
|
|
6748
|
+
* extra finding fields are permitted).
|
|
6749
|
+
*
|
|
6750
|
+
* Returned as a plain JSON-shaped record — callers that want to
|
|
6751
|
+
* feed it into ajv or another validator pass it through directly.
|
|
6752
|
+
*/
|
|
6753
|
+
declare function auditReportJsonSchema(): Record<string, unknown>;
|
|
6754
|
+
|
|
6755
|
+
/**
|
|
6756
|
+
* Default subdirectory beneath the repo root where audit reports are
|
|
6757
|
+
* persisted. Mirrors the path declared on issue #518's acceptance
|
|
6758
|
+
* criteria: `.claude/state/docs-sync/<N>-audit.json`.
|
|
6759
|
+
*/
|
|
6760
|
+
declare const DEFAULT_AUDIT_REPORT_DIR = ".claude/state/docs-sync";
|
|
6761
|
+
/**
|
|
6762
|
+
* Stable iteration order for category keys. Matches the order they
|
|
6763
|
+
* appear in the persisted report and the order they ran during the
|
|
6764
|
+
* scan (API surface diff first, then TSDoc, then references, then
|
|
6765
|
+
* the docs-only checks). The order is part of the contract — a
|
|
6766
|
+
* consumer that walks `Object.keys(report.categories)` sees this
|
|
6767
|
+
* order on every read.
|
|
6768
|
+
*/
|
|
6769
|
+
declare const AUDIT_CATEGORY_ORDER: ReadonlyArray<AuditCategory>;
|
|
6770
|
+
/**
|
|
6771
|
+
* One drift-check runner. The scan orchestrator invokes each
|
|
6772
|
+
* runner in registration order, collects the findings, and merges
|
|
6773
|
+
* them into the persisted report. Runners are intentionally
|
|
6774
|
+
* synchronous to keep the scaffold simple — children #519 and
|
|
6775
|
+
* #520 may introduce async runners by adding a parallel
|
|
6776
|
+
* `AsyncAuditCheckRunner` shape if needed.
|
|
6777
|
+
*
|
|
6778
|
+
* Runners are pure functions: given the same context they should
|
|
6779
|
+
* produce the same finding list. The scan orchestrator does not
|
|
6780
|
+
* sandbox them — a runner that mutates the filesystem or shells
|
|
6781
|
+
* out is on its own honor.
|
|
6782
|
+
*/
|
|
6783
|
+
interface AuditCheckRunner {
|
|
6784
|
+
/**
|
|
6785
|
+
* Stable name used in diagnostics and logs. Conventionally
|
|
6786
|
+
* matches the category the runner produces findings in (e.g.
|
|
6787
|
+
* `apiDiff`, `tsdocCoverage`).
|
|
6788
|
+
*/
|
|
6789
|
+
readonly name: string;
|
|
6790
|
+
/**
|
|
6791
|
+
* Compute the findings for this check. Runners must return
|
|
6792
|
+
* already-validated finding records — the orchestrator does not
|
|
6793
|
+
* post-process category, severity, or location.
|
|
6794
|
+
*/
|
|
6795
|
+
run(context: AuditCheckRunnerContext): ReadonlyArray<AuditFinding>;
|
|
6796
|
+
}
|
|
6797
|
+
/**
|
|
6798
|
+
* Context passed to every check runner. Carries the same fields
|
|
6799
|
+
* the orchestrator needs to populate the report header so runners
|
|
6800
|
+
* can consult them when computing their findings (e.g. resolve
|
|
6801
|
+
* relative paths against `repoRoot`).
|
|
6802
|
+
*/
|
|
6803
|
+
interface AuditCheckRunnerContext {
|
|
6804
|
+
readonly repoRoot: string;
|
|
6805
|
+
readonly mode: AuditMode;
|
|
6806
|
+
readonly scope: string;
|
|
6807
|
+
readonly issueNumber: number;
|
|
6808
|
+
}
|
|
6809
|
+
/**
|
|
6810
|
+
* Options accepted by {@link runScan}.
|
|
6811
|
+
*/
|
|
6812
|
+
interface RunScanOptions {
|
|
6813
|
+
/**
|
|
6814
|
+
* Absolute path to the repository root the scan runs against.
|
|
6815
|
+
* The audit report's `repoRoot` field is set to this value
|
|
6816
|
+
* verbatim — pass an absolute path so consumers reading the
|
|
6817
|
+
* report on a different checkout can rewrite paths reliably.
|
|
6818
|
+
*/
|
|
6819
|
+
readonly repoRoot: string;
|
|
6820
|
+
/**
|
|
6821
|
+
* Tracking-issue number the scan ran for. Determines the
|
|
6822
|
+
* persisted filename (`<issueNumber>-audit.json`).
|
|
6823
|
+
*/
|
|
6824
|
+
readonly issueNumber: number;
|
|
6825
|
+
/**
|
|
6826
|
+
* Invocation mode — `pr` for diff-scoped runs, `audit` for
|
|
6827
|
+
* full-repo runs.
|
|
6828
|
+
*/
|
|
6829
|
+
readonly mode: AuditMode;
|
|
6830
|
+
/**
|
|
6831
|
+
* Optional free-form scope label. Persisted on the report and
|
|
6832
|
+
* forwarded to every runner. Defaults to the empty string.
|
|
6833
|
+
*/
|
|
6834
|
+
readonly scope?: string;
|
|
6835
|
+
/**
|
|
6836
|
+
* Drift-check runners to invoke in order. Empty by default —
|
|
6837
|
+
* #518 ships the orchestrator skeleton without any wired
|
|
6838
|
+
* checks; #519 and #520 plug them in.
|
|
6839
|
+
*/
|
|
6840
|
+
readonly checks?: ReadonlyArray<AuditCheckRunner>;
|
|
6841
|
+
/**
|
|
6842
|
+
* Override the timestamp embedded on the report. Used in tests
|
|
6843
|
+
* to make output deterministic. Defaults to `new Date()` at
|
|
6844
|
+
* scan start.
|
|
6845
|
+
*/
|
|
6846
|
+
readonly now?: Date;
|
|
6847
|
+
/**
|
|
6848
|
+
* When `true`, persist the report to disk under
|
|
6849
|
+
* `<repoRoot>/<reportDir>/<issueNumber>-audit.json`. When
|
|
6850
|
+
* `false` (the default), the report is returned in memory only.
|
|
6851
|
+
*
|
|
6852
|
+
* @default false
|
|
6853
|
+
*/
|
|
6854
|
+
readonly persist?: boolean;
|
|
6855
|
+
/**
|
|
6856
|
+
* Override the directory the report is written to (relative to
|
|
6857
|
+
* {@link RunScanOptions.repoRoot}). Defaults to
|
|
6858
|
+
* {@link DEFAULT_AUDIT_REPORT_DIR}.
|
|
6859
|
+
*
|
|
6860
|
+
* @default ".claude/state/docs-sync"
|
|
6861
|
+
*/
|
|
6862
|
+
readonly reportDir?: string;
|
|
6863
|
+
}
|
|
6864
|
+
/**
|
|
6865
|
+
* Result returned by {@link runScan}. Always carries the report;
|
|
6866
|
+
* `reportPath` is non-empty only when persistence was requested.
|
|
6867
|
+
*/
|
|
6868
|
+
interface RunScanResult {
|
|
6869
|
+
/**
|
|
6870
|
+
* The report produced by the scan. Schema-compliant whether or
|
|
6871
|
+
* not any checks ran — empty `categories` arrays are persisted
|
|
6872
|
+
* explicitly.
|
|
6873
|
+
*/
|
|
6874
|
+
readonly report: AuditReport;
|
|
6875
|
+
/**
|
|
6876
|
+
* Absolute path the report was persisted to. Empty string when
|
|
6877
|
+
* `persist` was `false`.
|
|
6878
|
+
*/
|
|
6879
|
+
readonly reportPath: string;
|
|
6880
|
+
}
|
|
6881
|
+
/**
|
|
6882
|
+
* Run the docs-sync scan phase. Invokes every registered check
|
|
6883
|
+
* runner in order, merges the findings into a single
|
|
6884
|
+
* schema-compliant {@link AuditReport}, and optionally persists
|
|
6885
|
+
* the report to `<repoRoot>/<reportDir>/<issueNumber>-audit.json`.
|
|
6886
|
+
*
|
|
6887
|
+
* #518 ships this function with an **empty default check list**:
|
|
6888
|
+
* invoking `runScan({ repoRoot, issueNumber, mode: "pr" })`
|
|
6889
|
+
* produces a report whose `findings` and per-category arrays are
|
|
6890
|
+
* all empty. Children #519 and #520 register the real checks by
|
|
6891
|
+
* passing them via the `checks` option.
|
|
6892
|
+
*/
|
|
6893
|
+
declare function runScan(options: RunScanOptions): RunScanResult;
|
|
6894
|
+
/**
|
|
6895
|
+
* Compute the final {@link AuditReport} from a flat list of
|
|
6896
|
+
* findings. Group by category, sort each bucket deterministically,
|
|
6897
|
+
* and produce the flat `findings` aggregation in the documented
|
|
6898
|
+
* order. Exported so #519 / #520 can build reports incrementally
|
|
6899
|
+
* without re-running the whole scan.
|
|
6900
|
+
*/
|
|
6901
|
+
declare function buildReport(args: {
|
|
6902
|
+
readonly issueNumber: number;
|
|
6903
|
+
readonly mode: AuditMode;
|
|
6904
|
+
readonly scope: string;
|
|
6905
|
+
readonly repoRoot: string;
|
|
6906
|
+
readonly generatedAt: Date;
|
|
6907
|
+
readonly findings: ReadonlyArray<AuditFinding>;
|
|
6908
|
+
}): AuditReport;
|
|
6909
|
+
/**
|
|
6910
|
+
* Persist an {@link AuditReport} to disk. The directory is created
|
|
6911
|
+
* recursively when missing; the file is written atomically via a
|
|
6912
|
+
* temp-file + rename so a partial write never produces a corrupt
|
|
6913
|
+
* report.
|
|
6914
|
+
*/
|
|
6915
|
+
declare function persistAuditReport(args: {
|
|
6916
|
+
readonly report: AuditReport;
|
|
6917
|
+
readonly repoRoot: string;
|
|
6918
|
+
readonly reportDir?: string;
|
|
6919
|
+
}): string;
|
|
6920
|
+
/**
|
|
6921
|
+
* Build an empty {@link AuditReport.categories} record with every
|
|
6922
|
+
* key explicitly set to an empty array. Exported so callers that
|
|
6923
|
+
* stub the report shape in tests don't have to repeat the keys.
|
|
6924
|
+
*/
|
|
6925
|
+
declare function emptyCategoryBuckets(): {
|
|
6926
|
+
apiDiff: Array<AuditFinding & {
|
|
6927
|
+
category: typeof AuditCategory.ApiDiff;
|
|
6928
|
+
}>;
|
|
6929
|
+
tsdocCoverage: Array<AuditFinding & {
|
|
6930
|
+
category: typeof AuditCategory.TsdocCoverage;
|
|
6931
|
+
}>;
|
|
6932
|
+
referenceMismatches: Array<AuditFinding & {
|
|
6933
|
+
category: typeof AuditCategory.ReferenceMismatches;
|
|
6934
|
+
}>;
|
|
6935
|
+
linkFailures: Array<AuditFinding & {
|
|
6936
|
+
category: typeof AuditCategory.LinkFailures;
|
|
6937
|
+
}>;
|
|
6938
|
+
sampleFailures: Array<AuditFinding & {
|
|
6939
|
+
category: typeof AuditCategory.SampleFailures;
|
|
6940
|
+
}>;
|
|
6941
|
+
};
|
|
6942
|
+
|
|
6704
6943
|
/**
|
|
6705
6944
|
* One row in the TSDoc-coverage report — describes a single public
|
|
6706
6945
|
* symbol exported (transitively) from the package's entry point and
|
|
@@ -8719,4 +8958,4 @@ declare const COMPLETE_JOB_ID = "complete";
|
|
|
8719
8958
|
*/
|
|
8720
8959
|
declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
|
|
8721
8960
|
|
|
8722
|
-
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AGENT_TIER_ROLES, AGENT_TIER_VALUES, AgentConfig, type AgentConfigOptions, type AgentExpansionRules, type AgentFeaturesConfig, type AgentModel, type AgentPathsConfig, type AgentPlatform, type AgentPlatformOverrides, type AgentProcedure, type AgentRule, type AgentRuleBundle, type AgentRuleScope, type AgentSkill, type AgentSubAgent, type AgentSubAgentPlatformOverrides, type AgentTier, type AgentTierConfig, type AgentTierEntry, type AnalyzeTsDocCoverageOptions, ApiExtractor, type ApiExtractorOptions, type ApiExtractorReportOptions, type ApproveMergeUpgradeOptions, AstroConfig, type AstroConfigOptions, type AstroIntegrationSpec, AstroOutput, AstroProject, type AstroProjectOptions, type AwsAccount, AwsCdkProject, type AwsCdkProjectOptions, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, type AwsDeploymentTargetOptions, type AwsLocalDeploymentConfig, type AwsOrganization, type AwsRegion, AwsTeardownWorkflow, type AwsTeardownWorkflowOptions, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, type CiDeploymentConfig, type ClassTypeOptions, type ClaudeAutoModeConfig, type ClaudeHookAction, type ClaudeHookEntry, type ClaudeHooksConfig, type ClaudePermissionsConfig, type ClaudeRuleTarget, type ClaudeSandboxConfig, type ClaudeSettingsConfig, type CompileFencedSamplesOptions, type CopilotHandoff, type CursorHookAction, type CursorHooksConfig, type CursorSettingsConfig, type CustomDocSection, DEFAULT_AC_THRESHOLDS, DEFAULT_AGENT_PATHS, DEFAULT_AGENT_TIERS, DEFAULT_API_EXTRACTOR_CONFIG_FILE, DEFAULT_API_EXTRACTOR_ENTRY_POINT, DEFAULT_API_EXTRACTOR_REPORT_FILENAME, DEFAULT_API_EXTRACTOR_REPORT_FOLDER, DEFAULT_DECOMPOSITION_TEMPLATE, DEFAULT_DELEGATE_TO_PR_REVIEWER, DEFAULT_DISPATCH_MODEL, DEFAULT_DISPATCH_TO_HOUSEKEEPING_RATIO, DEFAULT_HOUSEKEEPING_MODEL, DEFAULT_ISSUE_TEMPLATES_BUNDLE_PATH_PATTERNS, DEFAULT_ISSUE_TEMPLATES_EMIT_CHECKER, DEFAULT_ISSUE_TEMPLATES_EMIT_STARTER, DEFAULT_ISSUE_TEMPLATES_ENABLED, DEFAULT_ISSUE_TEMPLATES_PATH, DEFAULT_ISSUE_TEMPLATES_REQUIRE_REFERENCE, DEFAULT_MERGE_METHOD, DEFAULT_OFF_PEAK_CRON_EXAMPLE, DEFAULT_PARTIAL_UNBLOCK_COMMENT_TEMPLATE, DEFAULT_PRIORITY_LABELS, DEFAULT_PRODUCT_CONTEXT_PATH, DEFAULT_PROGRESS_FILES_ENABLED, DEFAULT_PROGRESS_FILES_FILENAME_PATTERN, DEFAULT_PROGRESS_FILES_FORMAT, DEFAULT_PROGRESS_FILES_STALE_AFTER_HOURS, DEFAULT_PROGRESS_FILES_STATE_DIR, DEFAULT_REQUIRE_LINKED_ISSUE, DEFAULT_REQUIRE_PRODUCT_CONTEXT, DEFAULT_SAMPLE_COMPILER_OPTIONS, DEFAULT_SCHEDULED_TASKS_ROOT, DEFAULT_SCHEDULED_TASK_ENTRIES, DEFAULT_SHARED_EDITING_CONFLICT_STRATEGY, DEFAULT_SHARED_EDITING_EMIT_HELPER, DEFAULT_SHARED_EDITING_ENABLED, DEFAULT_SHARED_EDITING_VERIFY_COMMIT, DEFAULT_SHARED_INDEX_PATHS, DEFAULT_SKILL_EVALS_EMIT_RUNNER, DEFAULT_SKILL_EVALS_ENABLED, DEFAULT_SKILL_EVALS_SKILLS_ROOT, DEFAULT_SOURCES_THRESHOLDS, DEFAULT_STATE_FILE_PATH, DEFAULT_STATUS_LABELS, DEFAULT_TEARDOWN_BRANCH_PATTERNS, DEFAULT_TYPE_LABELS, DEFAULT_UNBLOCK_COMMENT_TEMPLATE, DEFAULT_UNBLOCK_DEPENDENTS_ENABLED,
|
|
8961
|
+
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AGENT_TIER_ROLES, AGENT_TIER_VALUES, AUDIT_CATEGORY_ORDER, AgentConfig, type AgentConfigOptions, type AgentExpansionRules, type AgentFeaturesConfig, type AgentModel, type AgentPathsConfig, type AgentPlatform, type AgentPlatformOverrides, type AgentProcedure, type AgentRule, type AgentRuleBundle, type AgentRuleScope, type AgentSkill, type AgentSubAgent, type AgentSubAgentPlatformOverrides, type AgentTier, type AgentTierConfig, type AgentTierEntry, type AnalyzeTsDocCoverageOptions, type ApiDiffFinding, ApiExtractor, type ApiExtractorOptions, type ApiExtractorReportOptions, type ApproveMergeUpgradeOptions, AstroConfig, type AstroConfigOptions, type AstroIntegrationSpec, AstroOutput, AstroProject, type AstroProjectOptions, AuditCategory, type AuditCheckRunner, type AuditCheckRunnerContext, type AuditFinding, type AuditFindingBase, type AuditLocation, AuditMode, type AuditReport, AuditSeverity, type AwsAccount, AwsCdkProject, type AwsCdkProjectOptions, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, type AwsDeploymentTargetOptions, type AwsLocalDeploymentConfig, type AwsOrganization, type AwsRegion, AwsTeardownWorkflow, type AwsTeardownWorkflowOptions, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, type CiDeploymentConfig, type ClassTypeOptions, type ClaudeAutoModeConfig, type ClaudeHookAction, type ClaudeHookEntry, type ClaudeHooksConfig, type ClaudePermissionsConfig, type ClaudeRuleTarget, type ClaudeSandboxConfig, type ClaudeSettingsConfig, type CompileFencedSamplesOptions, type CopilotHandoff, type CursorHookAction, type CursorHooksConfig, type CursorSettingsConfig, type CustomDocSection, DEFAULT_AC_THRESHOLDS, DEFAULT_AGENT_PATHS, DEFAULT_AGENT_TIERS, DEFAULT_API_EXTRACTOR_CONFIG_FILE, DEFAULT_API_EXTRACTOR_ENTRY_POINT, DEFAULT_API_EXTRACTOR_REPORT_FILENAME, DEFAULT_API_EXTRACTOR_REPORT_FOLDER, DEFAULT_AUDIT_REPORT_DIR, DEFAULT_DECOMPOSITION_TEMPLATE, DEFAULT_DELEGATE_TO_PR_REVIEWER, DEFAULT_DISPATCH_MODEL, DEFAULT_DISPATCH_TO_HOUSEKEEPING_RATIO, DEFAULT_HOUSEKEEPING_MODEL, DEFAULT_ISSUE_TEMPLATES_BUNDLE_PATH_PATTERNS, DEFAULT_ISSUE_TEMPLATES_EMIT_CHECKER, DEFAULT_ISSUE_TEMPLATES_EMIT_STARTER, DEFAULT_ISSUE_TEMPLATES_ENABLED, DEFAULT_ISSUE_TEMPLATES_PATH, DEFAULT_ISSUE_TEMPLATES_REQUIRE_REFERENCE, DEFAULT_MERGE_METHOD, DEFAULT_OFF_PEAK_CRON_EXAMPLE, DEFAULT_PARTIAL_UNBLOCK_COMMENT_TEMPLATE, DEFAULT_PRIORITY_LABELS, DEFAULT_PRODUCT_CONTEXT_PATH, DEFAULT_PROGRESS_FILES_ENABLED, DEFAULT_PROGRESS_FILES_FILENAME_PATTERN, DEFAULT_PROGRESS_FILES_FORMAT, DEFAULT_PROGRESS_FILES_STALE_AFTER_HOURS, DEFAULT_PROGRESS_FILES_STATE_DIR, DEFAULT_REQUIRE_LINKED_ISSUE, DEFAULT_REQUIRE_PRODUCT_CONTEXT, DEFAULT_SAMPLE_COMPILER_OPTIONS, DEFAULT_SCHEDULED_TASKS_ROOT, DEFAULT_SCHEDULED_TASK_ENTRIES, DEFAULT_SHARED_EDITING_CONFLICT_STRATEGY, DEFAULT_SHARED_EDITING_EMIT_HELPER, DEFAULT_SHARED_EDITING_ENABLED, DEFAULT_SHARED_EDITING_VERIFY_COMMIT, DEFAULT_SHARED_INDEX_PATHS, DEFAULT_SKILL_EVALS_EMIT_RUNNER, DEFAULT_SKILL_EVALS_ENABLED, DEFAULT_SKILL_EVALS_SKILLS_ROOT, DEFAULT_SOURCES_THRESHOLDS, DEFAULT_STATE_FILE_PATH, DEFAULT_STATUS_LABELS, DEFAULT_TEARDOWN_BRANCH_PATTERNS, DEFAULT_TYPE_LABELS, DEFAULT_UNBLOCK_COMMENT_TEMPLATE, DEFAULT_UNBLOCK_DEPENDENTS_ENABLED, DOCS_SYNC_AUDIT_SCHEMA_VERSION, type DeployWorkflowOptions, type DeploymentMetadata, type DocReferenceRecord, type ExtractDocReferencesOptions, type ExtractFencedSamplesOptions, type FencedSampleRecord, type FocusArea, type FocusAreaMatch, type FocusConfig, type GitBranch, type GitHubBoardMetadata, type GitHubProjectMetadata, type GitHubSprintMetadata, type IDependencyResolver, type IssueTemplatesConfig, JsiiFaker, LAYOUT_ENFORCEMENT, LAYOUT_ROOT_BY_PROJECT_TYPE, type LabelDefinition, type LayoutEnforcement, type LayoutViolation, type LinkFailureFinding, MAX_LABEL_DESCRIPTION_LENGTH, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MONOREPO_LAYOUT, type McpServerConfig, type McpTransport, type MeetingArea, type MeetingScope, type MeetingType, type MeetingTypeKind, type MeetingsConfig, type MergeMethod, type MonorepoLayoutRoot, MonorepoProject, type MonorepoProjectOptions, type OrganizationMetadata, PREFLIGHT_MERGE_METHOD_VALUES, PROD_DEPLOY_NAME, PROGRESS_FILES_FORMAT_VALUES, PnpmWorkspace, type PnpmWorkspaceOptions, type PreflightMergeMethod, type PreflightPrConfig, type PriorityRule, type ProgressFilesConfig, ProjectMetadata, type ProjectMetadataOptions, REQUIREMENTS_WRITER_PATHS, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, type ReferenceMismatchFinding, type RemoteCacheOptions, type RepositoryMetadata, ResetTask, type ResetTaskOptions, type ResolvedAgentPaths, type ResolvedAgentTier, type ResolvedIssueTemplates, type ResolvedPreflightPr, type ResolvedProgressFiles, type ResolvedProjectMetadata, type ResolvedRunRatio, type ResolvedScheduledTask, type ResolvedScheduledTasks, type ResolvedScopeGate, type ResolvedSharedEditing, type ResolvedSkillEvals, type ResolvedUnblockDependents, type RunRatioConfig, type RunScanOptions, type RunScanResult, SCHEDULED_TASK_MODEL_VALUES, SCOPE_CLASS_VALUES, SHARED_EDITING_CONFLICT_STRATEGY_VALUES, STARLIGHT_ROLE, type SampleCompilationFailure, type SampleFailureFinding, SampleLang, type ScheduledTaskEntry, type ScheduledTaskModel, type ScheduledTaskOverride, type ScheduledTasksConfig, type ScopeClass, type ScopeGateConfig, type ScopeGateThresholds, type SharedEditingConfig, type SkillEvalsConfig, type SlackMetadata, type SourceTierExamples, type StarlightEditLink, type StarlightLogo, StarlightProject, type StarlightProjectOptions, type StarlightRole, type StarlightSidebarItem, type StarlightSingletonViolation, type StarlightSocialLink, type SyncLabelsOptions, type TemplateResolveResult, TestRunner, TsDocCoverageKind, type TsDocCoverageRecord, type TsdocCoverageFinding, TurboRepo, type TurboRepoOptions, TurboRepoTask, type TurboRepoTaskOptions, TypeScriptConfig, TypeScriptProject, type TypeScriptProjectOptions, UNKNOWN_TYPE_FALLBACK_TIER, type UnblockDependentsConfig, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, type VersionKey, Vitest, type VitestConfigOptions, type VitestOptions, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, agendaBundle, analyzeTsDocCoverage, auditReportJsonSchema, awsCdkBundle, baseBundle, bcmWriterBundle, buildBaseBundle, buildBcmWriterBundle, buildBuiltInBundles, buildBusinessModelsBundle, buildCheckBlockedProcedure, buildCompanyProfileBundle, buildCustomerProfileBundle, buildDocsSyncBundle, buildIndustryDiscoveryBundle, buildMaintenanceAuditBundle, buildOrchestratorConventionsContent, buildPeopleProfileBundle, buildRegulatoryResearchBundle, buildReport, buildRequirementsAnalystBundle, buildRequirementsReviewerBundle, buildRequirementsWriterBundle, buildResearchPipelineBundle, buildSoftwareProfileBundle, buildStandardsResearchBundle, buildUnblockDependentsProcedure, businessModelsBundle, checkDocSamplesProcedure, checkLinksProcedure, classifyIssueScope, classifyRun, companyProfileBundle, compileFencedSamples, customerProfileBundle, docsSyncBundle, emptyCategoryBuckets, extractApiProcedure, extractDocReferences, extractFencedSamples, formatLayoutViolation, formatStarlightSingletonViolation, getLatestEligibleVersion, githubWorkflowBundle, industryDiscoveryBundle, jestBundle, maintenanceAuditBundle, meetingAnalysisBundle, orchestratorBundle, peopleProfileBundle, persistAuditReport, pnpmBundle, prReviewBundle, projenBundle, regulatoryResearchBundle, renderAgentTierCaseStatement, renderAgentTierSection, renderCheckDocSamplesProcedure, renderCheckLinksProcedure, renderCustomDocSectionBlock, renderCustomDocSections, renderExtractApiProcedure, renderFocusSection, renderIssueTemplatesBundleHook, renderIssueTemplatesCheckerScript, renderIssueTemplatesRuleContent, renderIssueTemplatesStarterPage, renderMeetingTypesSection, renderPreflightPrSection, renderPreflightPrShellHelpers, renderPriorityRulesSection, renderProgressFileName, renderProgressFilePath, renderProgressFilesBundleHook, renderProgressFilesRuleContent, renderRunRatioSection, renderRunRatioShellHelpers, renderScheduledTaskSkillFile, renderScheduledTasksSection, renderScopeGateSection, renderScopeGateShellHelpers, renderSharedEditingBundleHook, renderSharedEditingHelperScript, renderSharedEditingRuleContent, renderSkillEvalsBundleHook, renderSkillEvalsRuleContent, renderSkillEvalsRunnerScript, renderSourceTierExamples, renderUnblockDependentsScript, renderUnblockDependentsSection, requirementsAnalystBundle, requirementsReviewerBundle, requirementsWriterBundle, researchPipelineBundle, resolveAgentPaths, resolveAgentTiers, resolveAstroProjectOutdir, resolveAwsCdkProjectOutdir, resolveIssueTemplates, resolveModelAlias, resolveOrchestratorAssets, resolveOutdirFromPackageName, resolvePreflightPr, resolveProgressFiles, resolveRunRatio, resolveScheduledTasks, resolveScopeGate, resolveSharedEditing, resolveSkillEvals, resolveTemplateVariables, resolveTypeScriptProjectOutdir, resolveUnblockDependents, runScan, slackBundle, softwareProfileBundle, standardsResearchBundle, turborepoBundle, typescriptBundle, validateAgentTierConfig, validateIssueTemplatesConfig, validateMonorepoLayout, validatePreflightPrConfig, validateProgressFilesConfig, validateRunRatioConfig, validateScheduledTasksConfig, validateScopeGateConfig, validateSharedEditingConfig, validateSkillEvalsConfig, validateStarlightSingleton, validateUnblockDependentsConfig, vitestBundle };
|