@codedrifters/configulator 0.0.262 → 0.0.263
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 +54 -11
- package/lib/index.d.ts +54 -11
- package/lib/index.js +164 -22
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +164 -22
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.mjs
CHANGED
|
@@ -5187,6 +5187,86 @@ var meetingAnalystSubAgent = {
|
|
|
5187
5187
|
"5. **Bi-directional traceability.** Every document and issue created by",
|
|
5188
5188
|
" this pipeline must link back to the meeting source, and the meeting",
|
|
5189
5189
|
" source documents must link forward to everything created from them.",
|
|
5190
|
+
"6. **Respect meeting type and areas.** Read the `meeting_type` and",
|
|
5191
|
+
" `areas` values from the meeting frontmatter before starting Phase 1.",
|
|
5192
|
+
" Apply the type-specific rules from the **Meeting type handling**",
|
|
5193
|
+
" table (phases 1\u20132) and the area-filtered routing rules from the",
|
|
5194
|
+
" **Areas filtering** table (phase 4).",
|
|
5195
|
+
"",
|
|
5196
|
+
"---",
|
|
5197
|
+
"",
|
|
5198
|
+
"## Meeting type handling",
|
|
5199
|
+
"",
|
|
5200
|
+
"Meeting frontmatter is expected to carry a `meeting_type` field whose",
|
|
5201
|
+
"value is one of the project's concrete meeting-type `id`s (declared",
|
|
5202
|
+
"via `AgentConfigOptions.meetings.meetingTypes`). Each concrete `id`",
|
|
5203
|
+
"maps to one of six generic **meeting kinds** that drive type-specific",
|
|
5204
|
+
"extraction rules:",
|
|
5205
|
+
"",
|
|
5206
|
+
"| Kind | Primary outputs | Phase-1/2 rules |",
|
|
5207
|
+
"|------|-----------------|-----------------|",
|
|
5208
|
+
"| `planning` | Sprint/plan updates, task issues, requirement drafts | Extract every task assignment. Phase 4 updates the active sprint-plan doc directly and creates one issue per assigned task. |",
|
|
5209
|
+
"| `review` | Retro notes, follow-up issues, status updates, requirement revisions | Mark completed tasks in the active sprint-plan doc. Capture retrospective learnings inside the meeting notes \u2014 do not spawn a separate retro document. |",
|
|
5210
|
+
"| `brainstorm` | Future-feature candidates, research topics, very few Firm decisions | Lower the bar for Open Questions. Do **not** create requirement or ADR issues from brainstorm output unless the item is explicitly marked **Firm**. Prefer research/discovery issues for promising ideas. |",
|
|
5211
|
+
"| `standup` | Action items, blockers, status updates | Do not produce requirement, ADR, or BDR drafts. Phase 3 (Draft) is almost always skipped. Focus on action-item issues and sprint-plan status updates. |",
|
|
5212
|
+
"| `external` | Customer/competitive intel, people/company profiles, lead capture | Default every attendee outside the team into **People of Interest**. Default every organization mentioned into **Companies of Interest** (signal threshold still applies). Capture stated customer pain points as candidate **BR** (business requirements), not FR. |",
|
|
5213
|
+
"| `other` | General meeting extraction | Apply the default workflow with no type-specific overrides. |",
|
|
5214
|
+
"",
|
|
5215
|
+
"**How to resolve the kind:**",
|
|
5216
|
+
"",
|
|
5217
|
+
"1. Read `meeting_type` from the frontmatter.",
|
|
5218
|
+
"2. Look up the matching `id` in the project's **Recognized meeting",
|
|
5219
|
+
" types** table (rendered below when `meetingTypes` is declared).",
|
|
5220
|
+
"3. Use the `Kind` column value. If the table is absent, the `id` is",
|
|
5221
|
+
" unknown, or the `Kind` column is `\u2014`, fall back to `other`.",
|
|
5222
|
+
"4. Apply the rules in the row above **in addition to** the normal",
|
|
5223
|
+
" phase workflow \u2014 never as a replacement.",
|
|
5224
|
+
"",
|
|
5225
|
+
"If `meeting_type` is missing, invalid, or the declared `id` is not in",
|
|
5226
|
+
"the project's table, note it in the extraction's Open Questions and",
|
|
5227
|
+
"proceed with the default workflow (treat as `other`).",
|
|
5228
|
+
"",
|
|
5229
|
+
"## Areas filtering",
|
|
5230
|
+
"",
|
|
5231
|
+
"Meeting frontmatter may carry an `areas: [...]` list whose values",
|
|
5232
|
+
"match `id`s from the project's **Area \u2192 doc-root mapping** table",
|
|
5233
|
+
"(declared via `AgentConfigOptions.meetings.meetingAreas`). The list",
|
|
5234
|
+
"scopes phase-4 direct edits and cross-references to the doc-root",
|
|
5235
|
+
"sub-folders registered for those areas. A given area's effective",
|
|
5236
|
+
"path resolves as `<docsRoot>/<docRoot>` \u2014 `docsRoot` comes from",
|
|
5237
|
+
"`AgentPathsConfig.docsRoot`; `docRoot` is the sub-folder shown in",
|
|
5238
|
+
"the **Area \u2192 doc-root mapping** table.",
|
|
5239
|
+
"",
|
|
5240
|
+
"**Gating contract (phase 4 only):**",
|
|
5241
|
+
"",
|
|
5242
|
+
"- **Scoped in:** direct edits and cross-reference stubs under the",
|
|
5243
|
+
" `docRoot` of every `id` present in the meeting's `areas` list.",
|
|
5244
|
+
"- **Scoped out:** direct edits to any doc-root sub-folder that is",
|
|
5245
|
+
" declared in the project's area map but whose `id` is **not** in",
|
|
5246
|
+
" the meeting's `areas`. For those out-of-scope areas, create",
|
|
5247
|
+
" follow-up issues instead of editing the doc directly.",
|
|
5248
|
+
"- **Not gated:** issue creation (requirements, ADRs, profiles,",
|
|
5249
|
+
" research) is always in scope regardless of areas.",
|
|
5250
|
+
"",
|
|
5251
|
+
"**Resolution rules:**",
|
|
5252
|
+
"",
|
|
5253
|
+
"1. If the meeting's `areas` frontmatter is missing or empty **and**",
|
|
5254
|
+
" the project has declared a non-empty `meetingAreas` map, no",
|
|
5255
|
+
" doc-root sub-folder is gated in: direct edits to any declared",
|
|
5256
|
+
" `docRoot` sub-folder are out-of-scope and become follow-up issues",
|
|
5257
|
+
" per step 6. Only the default meetings root (`meetingsRoot`)",
|
|
5258
|
+
" remains editable.",
|
|
5259
|
+
"2. If `areas` lists an `id` that is not in the project's area map,",
|
|
5260
|
+
" note it in the extraction's Open Questions and treat the unknown",
|
|
5261
|
+
" `id` as absent. Do **not** invent a doc-root path for it.",
|
|
5262
|
+
"3. Out-of-scope direct edits become `type:docs` follow-up issues on",
|
|
5263
|
+
" phase 4 step 6, with the area noted in the issue body.",
|
|
5264
|
+
"",
|
|
5265
|
+
"When the project has **not** declared any `meetingAreas` at all,",
|
|
5266
|
+
"this section applies degenerately \u2014 no areas are gated, no",
|
|
5267
|
+
"follow-up issues are synthesized for missing areas, and phase-4",
|
|
5268
|
+
"direct edits follow the default workflow (step 6 edits any doc",
|
|
5269
|
+
"flagged as Firm, unrestricted by `docRoot`).",
|
|
5190
5270
|
"",
|
|
5191
5271
|
"---",
|
|
5192
5272
|
"",
|
|
@@ -5244,7 +5324,13 @@ var meetingAnalystSubAgent = {
|
|
|
5244
5324
|
"",
|
|
5245
5325
|
"### Steps",
|
|
5246
5326
|
"",
|
|
5247
|
-
"1. Read the transcript file specified in the issue body.",
|
|
5327
|
+
"1. Read the transcript file specified in the issue body. Parse the",
|
|
5328
|
+
" meeting-note frontmatter first, capturing `meeting_type` and",
|
|
5329
|
+
" `areas`. Resolve `meeting_type` to a kind using the **Meeting type",
|
|
5330
|
+
" handling** table; note the resolved kind in the extraction",
|
|
5331
|
+
" frontmatter. If `meeting_type` is missing or not in the project's",
|
|
5332
|
+
" Recognized meeting types table, treat it as `other` and flag it",
|
|
5333
|
+
" in Open Questions.",
|
|
5248
5334
|
"2. Identify and categorize content into these buckets:",
|
|
5249
5335
|
"",
|
|
5250
5336
|
" | Bucket | What to look for |",
|
|
@@ -5270,14 +5356,32 @@ var meetingAnalystSubAgent = {
|
|
|
5270
5356
|
" - Companies of Interest (with type and context)",
|
|
5271
5357
|
" - Strategic / Product Direction",
|
|
5272
5358
|
"",
|
|
5273
|
-
"
|
|
5359
|
+
" Carry `meeting_type`, the resolved `meeting_kind`, and `areas`",
|
|
5360
|
+
" into the extraction frontmatter so downstream phases can gate",
|
|
5361
|
+
" behaviour without re-parsing the meeting note.",
|
|
5362
|
+
"",
|
|
5363
|
+
"4. **Apply type-specific rules.** Consult the **Meeting type handling**",
|
|
5364
|
+
" table for the resolved kind and apply its phase-1 rules in",
|
|
5365
|
+
" addition to the default extraction above. Examples:",
|
|
5366
|
+
" - `standup`: skip requirement, ADR, and BDR extraction; focus on",
|
|
5367
|
+
" action items and status.",
|
|
5368
|
+
" - `brainstorm`: emphasize Open Questions and Future Features.",
|
|
5369
|
+
" Only mark decisions as Firm when the transcript is unambiguous.",
|
|
5370
|
+
" - `external`: default attendees outside the team into People of",
|
|
5371
|
+
" Interest; default organizations mentioned into Companies of",
|
|
5372
|
+
" Interest (signal threshold still applies); capture customer",
|
|
5373
|
+
" pain points as candidate BR (not FR).",
|
|
5374
|
+
"",
|
|
5375
|
+
"5. **Create downstream phase issues** using `gh issue create`:",
|
|
5274
5376
|
" - Always create a `meeting:notes` issue (blocked on this extract issue)",
|
|
5275
5377
|
" - If requirements OR decisions/ADRs identified, create a `meeting:draft` issue",
|
|
5276
|
-
" (blocked on the notes issue)",
|
|
5378
|
+
" (blocked on the notes issue). For kind `standup`, skip the",
|
|
5379
|
+
" `meeting:draft` issue \u2014 standup meetings almost never produce",
|
|
5380
|
+
" formal drafts.",
|
|
5277
5381
|
" - Always create a `meeting:link` issue \u2014 blocked on the draft issue if one",
|
|
5278
5382
|
" was created, otherwise blocked on the notes issue",
|
|
5279
5383
|
"",
|
|
5280
|
-
"
|
|
5384
|
+
"6. Commit, push, and close the extract issue.",
|
|
5281
5385
|
"",
|
|
5282
5386
|
"---",
|
|
5283
5387
|
"",
|
|
@@ -5334,18 +5438,38 @@ var meetingAnalystSubAgent = {
|
|
|
5334
5438
|
"### Steps",
|
|
5335
5439
|
"",
|
|
5336
5440
|
"1. Read the drafts from Phase 3 (if they exist) and the extraction from Phase 1.",
|
|
5441
|
+
" Re-read the extraction frontmatter for `meeting_kind` and `areas`,",
|
|
5442
|
+
" then build the area-gate: the set of `docRoot` sub-folders that",
|
|
5443
|
+
" are in scope for direct edits on this meeting. Apply the rules in",
|
|
5444
|
+
" the **Areas filtering** section above.",
|
|
5337
5445
|
"2. Create requirement issues using `gh issue create` with appropriate labels.",
|
|
5338
5446
|
" Include a `## Traceability` section in each issue body linking back to",
|
|
5339
|
-
" the source meeting and extraction file.",
|
|
5447
|
+
" the source meeting and extraction file. Issue creation is **not**",
|
|
5448
|
+
" gated by areas.",
|
|
5340
5449
|
"3. Create ADR issues if technology decisions need formal records.",
|
|
5341
|
-
" Include a `## Traceability` section in each.",
|
|
5450
|
+
" Include a `## Traceability` section in each. Not gated by areas.",
|
|
5342
5451
|
"4. Create action item issues for tasks that are not document-related.",
|
|
5343
|
-
" Include a `## Traceability` section in each.",
|
|
5344
|
-
"5. Cross-reference the meeting in any existing documents that were
|
|
5345
|
-
"
|
|
5346
|
-
"
|
|
5452
|
+
" Include a `## Traceability` section in each. Not gated by areas.",
|
|
5453
|
+
"5. Cross-reference the meeting in any existing documents that were",
|
|
5454
|
+
" discussed **and that live under an in-scope `docRoot`**. For",
|
|
5455
|
+
" discussed documents under an out-of-scope `docRoot`, open a",
|
|
5456
|
+
" follow-up `type:docs` issue instead of editing the doc directly.",
|
|
5457
|
+
"6. Apply direct product/strategy doc updates for items flagged as",
|
|
5458
|
+
" **Firm** confidence. When the project declares `meetingAreas`,",
|
|
5459
|
+
" gate these edits: only apply them when the target path lies",
|
|
5460
|
+
" under an in-scope `docRoot`, and for Firm items targeting an",
|
|
5461
|
+
" out-of-scope `docRoot` open a follow-up `type:docs` issue",
|
|
5462
|
+
" noting the area and the target path. When the project has not",
|
|
5463
|
+
" declared any `meetingAreas`, apply Firm updates unrestricted",
|
|
5464
|
+
" (the degenerate case above). For the kind `planning`, also",
|
|
5465
|
+
" update the active sprint-plan doc directly (when the",
|
|
5466
|
+
" sprint-plan doc's area is in-scope, or always when no",
|
|
5467
|
+
" `meetingAreas` are declared); for the kind `review`, mark",
|
|
5468
|
+
" completed tasks in that same doc.",
|
|
5347
5469
|
"7. **Update the extraction file** with a `## Downstream Artifacts` section",
|
|
5348
|
-
" listing every issue and document created from this meeting.",
|
|
5470
|
+
" listing every issue and document created from this meeting. Note",
|
|
5471
|
+
" any items that were deferred to follow-up issues because of the",
|
|
5472
|
+
" area gate.",
|
|
5349
5473
|
"8. **Update the meeting notes** with a `## Related Issues` section listing",
|
|
5350
5474
|
" all issues created from this meeting.",
|
|
5351
5475
|
"9. Comment on the parent extract issue with a summary linking to all",
|
|
@@ -5429,7 +5553,17 @@ var meetingAnalysisBundle = {
|
|
|
5429
5553
|
"Use `/process-meeting <path>` to process a meeting transcript through a",
|
|
5430
5554
|
"4-phase pipeline (extract \u2192 notes \u2192 draft \u2192 link). Each phase runs as a",
|
|
5431
5555
|
"separate agent session tracked by a GitHub issue with a `meeting:*` label.",
|
|
5432
|
-
"See the `meeting-analyst` agent definition for full workflow details."
|
|
5556
|
+
"See the `meeting-analyst` agent definition for full workflow details.",
|
|
5557
|
+
"",
|
|
5558
|
+
"Meeting notes may declare a `meeting_type` (one of the project's",
|
|
5559
|
+
"recognized types) and an `areas: [...]` list. The `meeting_type`",
|
|
5560
|
+
"resolves to a generic kind \u2014 `planning` / `review` / `brainstorm` /",
|
|
5561
|
+
"`standup` / `external` / `other` \u2014 that drives type-specific",
|
|
5562
|
+
"extraction rules in phases 1\u20132. The `areas` list scopes phase-4",
|
|
5563
|
+
"direct edits to the doc-root sub-folders declared in the project's",
|
|
5564
|
+
"**Area \u2192 doc-root mapping** table. When both fields are absent",
|
|
5565
|
+
"the pipeline falls back to the default workflow (kind `other`,",
|
|
5566
|
+
"no area gating)."
|
|
5433
5567
|
].join("\n"),
|
|
5434
5568
|
platforms: {
|
|
5435
5569
|
cursor: { exclude: true }
|
|
@@ -16260,18 +16394,24 @@ function renderMeetingTypes(types, agendaTemplateRoot) {
|
|
|
16260
16394
|
"This project declares a meeting-type taxonomy through",
|
|
16261
16395
|
"`AgentConfigOptions.meetings.meetingTypes`. When classifying a",
|
|
16262
16396
|
"meeting transcript, pick the `id` from this list that best fits the",
|
|
16263
|
-
"meeting; do **not** invent new type identifiers.
|
|
16264
|
-
`
|
|
16265
|
-
"",
|
|
16266
|
-
"
|
|
16267
|
-
"
|
|
16397
|
+
"meeting; do **not** invent new type identifiers. The `Kind` column",
|
|
16398
|
+
"maps each concrete `id` onto the generic meeting-kind taxonomy",
|
|
16399
|
+
"(`planning` / `review` / `brainstorm` / `standup` / `external` /",
|
|
16400
|
+
"`other`) documented in the **Meeting type handling** section \u2014",
|
|
16401
|
+
"apply the type-specific rules listed there based on this kind.",
|
|
16402
|
+
"Agenda-template paths below are resolved relative to",
|
|
16403
|
+
`\`${resolvedRoot}\`.`,
|
|
16404
|
+
"",
|
|
16405
|
+
"| ID | Label | Kind | Scope | Cadence | Default duration | Agenda template |",
|
|
16406
|
+
"|----|-------|------|-------|---------|------------------|-----------------|"
|
|
16268
16407
|
];
|
|
16269
16408
|
for (const type of types) {
|
|
16409
|
+
const kind = type.kind ? `\`${type.kind}\`` : "\u2014";
|
|
16270
16410
|
const cadence = type.cadence ? `\`${type.cadence}\`` : "\u2014";
|
|
16271
16411
|
const duration = type.defaultDurationMinutes !== void 0 ? `${type.defaultDurationMinutes} min` : "\u2014";
|
|
16272
16412
|
const template = type.agendaTemplatePath ? `\`${type.agendaTemplatePath}\`` : "\u2014";
|
|
16273
16413
|
lines.push(
|
|
16274
|
-
`| \`${type.id}\` | ${type.label} | \`${type.scope}\` | ${cadence} | ${duration} | ${template} |`
|
|
16414
|
+
`| \`${type.id}\` | ${type.label} | ${kind} | \`${type.scope}\` | ${cadence} | ${duration} | ${template} |`
|
|
16275
16415
|
);
|
|
16276
16416
|
}
|
|
16277
16417
|
return lines.join("\n");
|
|
@@ -16282,10 +16422,12 @@ function renderMeetingAreas(areas) {
|
|
|
16282
16422
|
"",
|
|
16283
16423
|
"This project declares a meeting-area routing map through",
|
|
16284
16424
|
"`AgentConfigOptions.meetings.meetingAreas`. When a meeting note's",
|
|
16285
|
-
"frontmatter carries an `
|
|
16286
|
-
"
|
|
16287
|
-
"
|
|
16288
|
-
"
|
|
16425
|
+
"frontmatter carries an `areas:` list, route phase-4 direct edits",
|
|
16426
|
+
"into the corresponding sub-trees of the docs root",
|
|
16427
|
+
"(`AgentPathsConfig.docsRoot`). See the **Areas filtering** section",
|
|
16428
|
+
"of the `meeting-analyst` agent for the full gating contract.",
|
|
16429
|
+
"Meetings whose `areas` list is empty or does not match any",
|
|
16430
|
+
"declared entry fall back to the default meetings root.",
|
|
16289
16431
|
"",
|
|
16290
16432
|
"| Area ID | Label | Doc-root sub-folder |",
|
|
16291
16433
|
"|---------|-------|---------------------|"
|