@codedrifters/configulator 0.0.200 → 0.0.201
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 +12 -1
- package/lib/index.d.ts +12 -1
- package/lib/index.js +472 -1
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +471 -1
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.d.mts
CHANGED
|
@@ -1039,6 +1039,17 @@ declare const prReviewBundle: AgentRuleBundle;
|
|
|
1039
1039
|
*/
|
|
1040
1040
|
declare const projenBundle: AgentRuleBundle;
|
|
1041
1041
|
|
|
1042
|
+
/**
|
|
1043
|
+
* Requirements-analyst bundle — opt-in via `includeBundles: [\"requirements-analyst\"]`.
|
|
1044
|
+
*
|
|
1045
|
+
* Provides a 3-phase requirements gap-discovery pipeline (scan → draft → trace)
|
|
1046
|
+
* designed for projects using the BCM (Business Capability Model) framework.
|
|
1047
|
+
* Ships a sub-agent, a user-invocable skill, and `req:*` phase labels via the
|
|
1048
|
+
* bundle `labels` mechanism so consuming projects automatically pick up the
|
|
1049
|
+
* label taxonomy through the sync-labels workflow.
|
|
1050
|
+
*/
|
|
1051
|
+
declare const requirementsAnalystBundle: AgentRuleBundle;
|
|
1052
|
+
|
|
1042
1053
|
/**
|
|
1043
1054
|
* Slack bundle — opt-in via `includeBundles: ["slack"]`.
|
|
1044
1055
|
* Never auto-detected (no Slack dependency to introspect).
|
|
@@ -3405,4 +3416,4 @@ declare const COMPLETE_JOB_ID = "complete";
|
|
|
3405
3416
|
*/
|
|
3406
3417
|
declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
|
|
3407
3418
|
|
|
3408
|
-
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, type AgentConfigOptions, type AgentModel, type AgentPlatform, type AgentPlatformOverrides, type AgentProcedure, type AgentRule, type AgentRuleBundle, type AgentRuleScope, type AgentSkill, type AgentSubAgent, type AgentSubAgentPlatformOverrides, 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 CopilotHandoff, type CursorHookAction, type CursorHooksConfig, type CursorSettingsConfig, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, DEFAULT_TEARDOWN_BRANCH_PATTERNS, DEFAULT_TYPE_LABELS, type DeployWorkflowOptions, type DeploymentMetadata, type GitBranch, type GitHubBoardMetadata, type GitHubProjectMetadata, type GitHubSprintMetadata, type IDependencyResolver, JsiiFaker, type LabelDefinition, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, type McpServerConfig, type McpTransport, type MergeMethod, MonorepoProject, type MonorepoProjectOptions, type OrganizationMetadata, PROD_DEPLOY_NAME, PnpmWorkspace, type PnpmWorkspaceOptions, ProjectMetadata, type ProjectMetadataOptions, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, type RemoteCacheOptions, type RepositoryMetadata, ResetTask, type ResetTaskOptions, type ResolvedProjectMetadata, type SlackMetadata, type StarlightEditLink, type StarlightLogo, StarlightProject, type StarlightProjectOptions, type StarlightSidebarItem, type StarlightSocialLink, type SyncLabelsOptions, type TemplateResolveResult, TestRunner, TurboRepo, type TurboRepoOptions, TurboRepoTask, type TurboRepoTaskOptions, TypeScriptConfig, TypeScriptProject, type TypeScriptProjectOptions, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, type VersionKey, Vitest, type VitestConfigOptions, type VitestOptions, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, awsCdkBundle, baseBundle, getLatestEligibleVersion, githubWorkflowBundle, jestBundle, meetingAnalysisBundle, orchestratorBundle, pnpmBundle, prReviewBundle, projenBundle, resolveModelAlias, resolveTemplateVariables, slackBundle, turborepoBundle, typescriptBundle, vitestBundle };
|
|
3419
|
+
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, type AgentConfigOptions, type AgentModel, type AgentPlatform, type AgentPlatformOverrides, type AgentProcedure, type AgentRule, type AgentRuleBundle, type AgentRuleScope, type AgentSkill, type AgentSubAgent, type AgentSubAgentPlatformOverrides, 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 CopilotHandoff, type CursorHookAction, type CursorHooksConfig, type CursorSettingsConfig, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, DEFAULT_TEARDOWN_BRANCH_PATTERNS, DEFAULT_TYPE_LABELS, type DeployWorkflowOptions, type DeploymentMetadata, type GitBranch, type GitHubBoardMetadata, type GitHubProjectMetadata, type GitHubSprintMetadata, type IDependencyResolver, JsiiFaker, type LabelDefinition, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, type McpServerConfig, type McpTransport, type MergeMethod, MonorepoProject, type MonorepoProjectOptions, type OrganizationMetadata, PROD_DEPLOY_NAME, PnpmWorkspace, type PnpmWorkspaceOptions, ProjectMetadata, type ProjectMetadataOptions, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, type RemoteCacheOptions, type RepositoryMetadata, ResetTask, type ResetTaskOptions, type ResolvedProjectMetadata, type SlackMetadata, type StarlightEditLink, type StarlightLogo, StarlightProject, type StarlightProjectOptions, type StarlightSidebarItem, type StarlightSocialLink, type SyncLabelsOptions, type TemplateResolveResult, TestRunner, TurboRepo, type TurboRepoOptions, TurboRepoTask, type TurboRepoTaskOptions, TypeScriptConfig, TypeScriptProject, type TypeScriptProjectOptions, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, type VersionKey, Vitest, type VitestConfigOptions, type VitestOptions, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, awsCdkBundle, baseBundle, getLatestEligibleVersion, githubWorkflowBundle, jestBundle, meetingAnalysisBundle, orchestratorBundle, pnpmBundle, prReviewBundle, projenBundle, requirementsAnalystBundle, resolveModelAlias, resolveTemplateVariables, slackBundle, turborepoBundle, typescriptBundle, vitestBundle };
|
package/lib/index.d.ts
CHANGED
|
@@ -1088,6 +1088,17 @@ declare const prReviewBundle: AgentRuleBundle;
|
|
|
1088
1088
|
*/
|
|
1089
1089
|
declare const projenBundle: AgentRuleBundle;
|
|
1090
1090
|
|
|
1091
|
+
/**
|
|
1092
|
+
* Requirements-analyst bundle — opt-in via `includeBundles: [\"requirements-analyst\"]`.
|
|
1093
|
+
*
|
|
1094
|
+
* Provides a 3-phase requirements gap-discovery pipeline (scan → draft → trace)
|
|
1095
|
+
* designed for projects using the BCM (Business Capability Model) framework.
|
|
1096
|
+
* Ships a sub-agent, a user-invocable skill, and `req:*` phase labels via the
|
|
1097
|
+
* bundle `labels` mechanism so consuming projects automatically pick up the
|
|
1098
|
+
* label taxonomy through the sync-labels workflow.
|
|
1099
|
+
*/
|
|
1100
|
+
declare const requirementsAnalystBundle: AgentRuleBundle;
|
|
1101
|
+
|
|
1091
1102
|
/**
|
|
1092
1103
|
* Slack bundle — opt-in via `includeBundles: ["slack"]`.
|
|
1093
1104
|
* Never auto-detected (no Slack dependency to introspect).
|
|
@@ -3454,5 +3465,5 @@ declare const COMPLETE_JOB_ID = "complete";
|
|
|
3454
3465
|
*/
|
|
3455
3466
|
declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
|
|
3456
3467
|
|
|
3457
|
-
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, AstroConfig, AstroOutput, AstroProject, AwsCdkProject, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, AwsTeardownWorkflow, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, DEFAULT_TEARDOWN_BRANCH_PATTERNS, DEFAULT_TYPE_LABELS, JsiiFaker, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MonorepoProject, PROD_DEPLOY_NAME, PnpmWorkspace, ProjectMetadata, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, ResetTask, StarlightProject, TestRunner, TurboRepo, TurboRepoTask, TypeScriptConfig, TypeScriptProject, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, Vitest, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, awsCdkBundle, baseBundle, getLatestEligibleVersion, githubWorkflowBundle, jestBundle, meetingAnalysisBundle, orchestratorBundle, pnpmBundle, prReviewBundle, projenBundle, resolveModelAlias, resolveTemplateVariables, slackBundle, turborepoBundle, typescriptBundle, vitestBundle };
|
|
3468
|
+
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, AstroConfig, AstroOutput, AstroProject, AwsCdkProject, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, AwsTeardownWorkflow, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, DEFAULT_TEARDOWN_BRANCH_PATTERNS, DEFAULT_TYPE_LABELS, JsiiFaker, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MonorepoProject, PROD_DEPLOY_NAME, PnpmWorkspace, ProjectMetadata, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, ResetTask, StarlightProject, TestRunner, TurboRepo, TurboRepoTask, TypeScriptConfig, TypeScriptProject, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, Vitest, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, awsCdkBundle, baseBundle, getLatestEligibleVersion, githubWorkflowBundle, jestBundle, meetingAnalysisBundle, orchestratorBundle, pnpmBundle, prReviewBundle, projenBundle, requirementsAnalystBundle, resolveModelAlias, resolveTemplateVariables, slackBundle, turborepoBundle, typescriptBundle, vitestBundle };
|
|
3458
3469
|
export type { AgentConfigOptions, AgentModel, AgentPlatform, AgentPlatformOverrides, AgentProcedure, AgentRule, AgentRuleBundle, AgentRuleScope, AgentSkill, AgentSubAgent, AgentSubAgentPlatformOverrides, ApproveMergeUpgradeOptions, AstroConfigOptions, AstroIntegrationSpec, AstroProjectOptions, AwsAccount, AwsCdkProjectOptions, AwsDeploymentTargetOptions, AwsLocalDeploymentConfig, AwsOrganization, AwsRegion, AwsTeardownWorkflowOptions, CiDeploymentConfig, ClassTypeOptions, ClaudeAutoModeConfig, ClaudeHookAction, ClaudeHookEntry, ClaudeHooksConfig, ClaudePermissionsConfig, ClaudeRuleTarget, ClaudeSandboxConfig, ClaudeSettingsConfig, CopilotHandoff, CursorHookAction, CursorHooksConfig, CursorSettingsConfig, DeployWorkflowOptions, DeploymentMetadata, GitBranch, GitHubBoardMetadata, GitHubProjectMetadata, GitHubSprintMetadata, IDependencyResolver, LabelDefinition, McpServerConfig, McpTransport, MergeMethod, MonorepoProjectOptions, OrganizationMetadata, PnpmWorkspaceOptions, ProjectMetadataOptions, RemoteCacheOptions, RepositoryMetadata, ResetTaskOptions, ResolvedProjectMetadata, SlackMetadata, StarlightEditLink, StarlightLogo, StarlightProjectOptions, StarlightSidebarItem, StarlightSocialLink, SyncLabelsOptions, TemplateResolveResult, TurboRepoOptions, TurboRepoTaskOptions, TypeScriptProjectOptions, VersionKey, VitestConfigOptions, VitestOptions };
|
package/lib/index.js
CHANGED
|
@@ -230,6 +230,7 @@ __export(index_exports, {
|
|
|
230
230
|
pnpmBundle: () => pnpmBundle,
|
|
231
231
|
prReviewBundle: () => prReviewBundle,
|
|
232
232
|
projenBundle: () => projenBundle,
|
|
233
|
+
requirementsAnalystBundle: () => requirementsAnalystBundle,
|
|
233
234
|
resolveModelAlias: () => resolveModelAlias,
|
|
234
235
|
resolveTemplateVariables: () => resolveTemplateVariables,
|
|
235
236
|
slackBundle: () => slackBundle,
|
|
@@ -2933,6 +2934,474 @@ var projenBundle = {
|
|
|
2933
2934
|
]
|
|
2934
2935
|
};
|
|
2935
2936
|
|
|
2937
|
+
// src/agent/bundles/requirements-analyst.ts
|
|
2938
|
+
var requirementsAnalystSubAgent = {
|
|
2939
|
+
name: "requirements-analyst",
|
|
2940
|
+
description: "Discovers requirement gaps from BCM model docs, competitive analysis, product docs, and meeting extracts. Produces scan reports and proposals for the downstream requirements-writer agent. Runs through a 3-phase pipeline (scan \u2192 draft \u2192 trace), one phase per session, tracked by req:* GitHub issue labels.",
|
|
2941
|
+
model: AGENT_MODEL.POWERFUL,
|
|
2942
|
+
maxTurns: 80,
|
|
2943
|
+
platforms: { cursor: { exclude: true } },
|
|
2944
|
+
prompt: [
|
|
2945
|
+
"# Requirements Analyst Agent",
|
|
2946
|
+
"",
|
|
2947
|
+
"Dedicated agent loop for discovering requirement gaps from BCM (Business",
|
|
2948
|
+
"Capability Model) documents, product docs, and competitive analysis \u2014 then",
|
|
2949
|
+
"creating well-formed requirement issues for the downstream",
|
|
2950
|
+
"requirements-writer (BCM writer) agent to draft. Designed for scheduled",
|
|
2951
|
+
"execution downstream of the BCM writer and company research agents.",
|
|
2952
|
+
"",
|
|
2953
|
+
"Follow your project's shared agent conventions (`AGENTS.md`,",
|
|
2954
|
+
"`CLAUDE.md`, or equivalent) for all commit, branch, and PR rules.",
|
|
2955
|
+
"",
|
|
2956
|
+
"## Design Principles",
|
|
2957
|
+
"",
|
|
2958
|
+
"1. **Discover, don't write.** This agent identifies *what requirements are",
|
|
2959
|
+
" missing*. The requirements-writer skill writes the actual documents. The",
|
|
2960
|
+
" boundary keeps this agent fast and the requirements-writer authoritative.",
|
|
2961
|
+
"2. **Trace everything.** Every discovered gap links to the source that",
|
|
2962
|
+
" revealed it (a BCM model doc, competitive analysis, product doc, or",
|
|
2963
|
+
" meeting extract).",
|
|
2964
|
+
"3. **Respect the taxonomy.** Route every discovered requirement to the",
|
|
2965
|
+
" correct BCM category (FR, BR, NFR, SEC, DR, INT, OPS, UX, MT, ADR, TR)",
|
|
2966
|
+
" using the disambiguation rules in the requirements-writer skill.",
|
|
2967
|
+
"4. **Deduplicate.** Before creating an issue, check whether a requirement",
|
|
2968
|
+
" already exists or an issue is already open for it.",
|
|
2969
|
+
"",
|
|
2970
|
+
"---",
|
|
2971
|
+
"",
|
|
2972
|
+
"## State Machine Overview",
|
|
2973
|
+
"",
|
|
2974
|
+
"Requirements synthesis flows through **3 phases**:",
|
|
2975
|
+
"",
|
|
2976
|
+
"```",
|
|
2977
|
+
"\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510",
|
|
2978
|
+
"\u2502 1. SCAN \u2502\u2500\u2500\u2500\u2500\u25B6\u2502 2. DRAFT \u2502\u2500\u2500\u2500\u2500\u25B6\u2502 3. TRACE \u2502",
|
|
2979
|
+
"\u2502 Read docs, \u2502 \u2502 Write gap \u2502 \u2502 Create GH \u2502",
|
|
2980
|
+
"\u2502 identify \u2502 \u2502 report with \u2502 \u2502 issues and \u2502",
|
|
2981
|
+
"\u2502 gaps, check \u2502 \u2502 requirement \u2502 \u2502 update src \u2502",
|
|
2982
|
+
"\u2502 for dupes \u2502 \u2502 proposals \u2502 \u2502 docs with \u2502",
|
|
2983
|
+
"\u2502 \u2502 \u2502 \u2502 \u2502 traceability\u2502",
|
|
2984
|
+
"\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518",
|
|
2985
|
+
"```",
|
|
2986
|
+
"",
|
|
2987
|
+
"**Issue labels encode the phase:**",
|
|
2988
|
+
"",
|
|
2989
|
+
"| Label | Phase | Session work |",
|
|
2990
|
+
"|-------|-------|-------------|",
|
|
2991
|
+
"| `req:scan` | 1. Scan | Read source docs, identify potential requirement gaps, check against existing requirements and open issues, write deduplicated scan report |",
|
|
2992
|
+
"| `req:draft` | 2. Draft | Write gap report with proposed requirements |",
|
|
2993
|
+
"| `req:trace` | 3. Trace | Create GitHub issues for each proposed requirement and update source documents with traceability notes |",
|
|
2994
|
+
"",
|
|
2995
|
+
"All issues also carry `type:requirement` and a `status:*` label.",
|
|
2996
|
+
"",
|
|
2997
|
+
"**Issue count per scan cycle:** 1 scan + 1 draft + 1 trace = **3 sessions**.",
|
|
2998
|
+
"",
|
|
2999
|
+
"**Shortened paths:**",
|
|
3000
|
+
"- No gaps found after scan \u2192 skip draft and trace \u2192 **1 session**",
|
|
3001
|
+
"- No source docs need traceability updates \u2192 still **3 sessions** (trace",
|
|
3002
|
+
" handles both issue creation and doc updates)",
|
|
3003
|
+
"",
|
|
3004
|
+
"---",
|
|
3005
|
+
"",
|
|
3006
|
+
"## Configurable Paths",
|
|
3007
|
+
"",
|
|
3008
|
+
"Projects adopting this bundle must define these paths in their agent",
|
|
3009
|
+
"configuration (`agentConfig.rules` extension or project-level docs):",
|
|
3010
|
+
"",
|
|
3011
|
+
"| Placeholder | Meaning | Typical value |",
|
|
3012
|
+
"|-------------|---------|---------------|",
|
|
3013
|
+
"| `<BCM_DOCS_ROOT>` | Root of BCM model docs (capability models) | `src/content/docs/concepts/` |",
|
|
3014
|
+
"| `<COMPETITIVE_ROOT>` | Competitive analysis docs | `src/content/docs/business-strategy/competitive/` |",
|
|
3015
|
+
"| `<PRODUCT_ROOT>` | Product roadmap / entity taxonomy | `src/content/docs/product/` |",
|
|
3016
|
+
"| `<MEETINGS_ROOT>` | Meeting extracts | `src/content/docs/research/meetings/` |",
|
|
3017
|
+
"| `<RESEARCH_REQUIREMENTS_ROOT>` | Scan reports and proposals | `src/content/docs/research/requirements/` |",
|
|
3018
|
+
"| `<REQUIREMENTS_ROOT>` | Final requirement documents (owned by requirements-writer) | `src/content/docs/requirements/` |",
|
|
3019
|
+
"| `<PREFIX>` | Project-specific requirement ID prefix | e.g. `VRTX`, `ACME` |",
|
|
3020
|
+
"",
|
|
3021
|
+
"If your project stores these in different locations, substitute accordingly",
|
|
3022
|
+
"wherever the phase instructions reference a path.",
|
|
3023
|
+
"",
|
|
3024
|
+
"---",
|
|
3025
|
+
"",
|
|
3026
|
+
"## Agent Loop",
|
|
3027
|
+
"",
|
|
3028
|
+
"Run this loop exactly once per session. Never start a second issue.",
|
|
3029
|
+
"",
|
|
3030
|
+
"1. Claim one open `type:requirement` issue using phase priority:",
|
|
3031
|
+
" `req:scan` > `req:draft` > `req:trace`.",
|
|
3032
|
+
"2. Transition `status:ready` \u2192 `status:in-progress` and create the branch",
|
|
3033
|
+
" per your project's branch-naming convention.",
|
|
3034
|
+
"3. Execute the phase handler that matches the issue's `req:*` label.",
|
|
3035
|
+
"4. Commit, push, open a PR (if applicable), and close the issue per your",
|
|
3036
|
+
" project's PR workflow.",
|
|
3037
|
+
"",
|
|
3038
|
+
"---",
|
|
3039
|
+
"",
|
|
3040
|
+
"## Phase 1: Scan (`req:scan`)",
|
|
3041
|
+
"",
|
|
3042
|
+
"**Goal:** Read source documents, identify where requirements are missing,",
|
|
3043
|
+
"incomplete, or contradictory, then check each potential gap against existing",
|
|
3044
|
+
"requirements and open issues to eliminate duplicates. Produces a single",
|
|
3045
|
+
"deduplicated scan report.",
|
|
3046
|
+
"",
|
|
3047
|
+
"**Budget:** Reading source docs + reading requirement registries + searching",
|
|
3048
|
+
"issues. Write one deduplicated scan output file.",
|
|
3049
|
+
"",
|
|
3050
|
+
"### Scan Sources",
|
|
3051
|
+
"",
|
|
3052
|
+
"The issue specifies which source(s) to scan. Common scan scopes:",
|
|
3053
|
+
"",
|
|
3054
|
+
"| Scope | What to read | What to look for |",
|
|
3055
|
+
"|-------|-------------|-----------------|",
|
|
3056
|
+
"| **BCM model doc** | One `{PREFIX}-NNN` doc under `<BCM_DOCS_ROOT>` | `## Vortex Relevance` (or equivalent project-relevance) section \u2014 gaps where capabilities exist but no FR/BR/INT addresses them |",
|
|
3057
|
+
"| **Competitive analysis** | One `comp-*.md` doc under `<COMPETITIVE_ROOT>` | Feature comparison gaps \u2014 competitor features the product lacks requirements for |",
|
|
3058
|
+
"| **Product roadmap** | `<PRODUCT_ROOT>/prioritized-feature-roadmap.md` | Roadmap items without corresponding FRs |",
|
|
3059
|
+
"| **Entity taxonomy** | `<PRODUCT_ROOT>/entity-taxonomy.md` | Entities without CRUD requirements (FR), data requirements (DR), or security requirements (SEC) |",
|
|
3060
|
+
"| **Meeting extract** | `<MEETINGS_ROOT>/meeting-*.extract.md` | Requirements identified but not yet formalized |",
|
|
3061
|
+
"",
|
|
3062
|
+
"### Steps",
|
|
3063
|
+
"",
|
|
3064
|
+
"1. **Read the source documents** specified in the issue.",
|
|
3065
|
+
"",
|
|
3066
|
+
"2. **Identify potential gaps.** For each potential missing requirement:",
|
|
3067
|
+
" - Classify into the correct BCM category (FR, BR, NFR, SEC, DR, INT,",
|
|
3068
|
+
" OPS, UX, MT, ADR, TR)",
|
|
3069
|
+
" - Apply the disambiguation rules from the requirements-writer skill",
|
|
3070
|
+
" - Note the source that revealed the gap",
|
|
3071
|
+
" - Estimate priority based on the source context",
|
|
3072
|
+
"",
|
|
3073
|
+
"3. **Read the requirements registry.** Scan `_index.md` files in each",
|
|
3074
|
+
" `<REQUIREMENTS_ROOT>/<category>/` directory to know what already exists.",
|
|
3075
|
+
"",
|
|
3076
|
+
"4. **Search for existing issues.** For each potential gap, search open issues:",
|
|
3077
|
+
" ```bash",
|
|
3078
|
+
' gh issue list --label "type:requirement" --state open \\',
|
|
3079
|
+
" --json number,title --limit 100",
|
|
3080
|
+
" ```",
|
|
3081
|
+
"",
|
|
3082
|
+
"5. **Classify each gap:**",
|
|
3083
|
+
" - **New** \u2014 no existing requirement or open issue covers this",
|
|
3084
|
+
" - **Duplicate** \u2014 an existing requirement already addresses this",
|
|
3085
|
+
" - **In progress** \u2014 an open issue already targets this",
|
|
3086
|
+
" - **Partial** \u2014 existing requirement partially covers this; note the gap",
|
|
3087
|
+
"",
|
|
3088
|
+
"6. **Write the deduplicated scan report** to:",
|
|
3089
|
+
" ```",
|
|
3090
|
+
" <RESEARCH_REQUIREMENTS_ROOT>/req-scan-<scope>-<YYYY-MM-DD>.md",
|
|
3091
|
+
" ```",
|
|
3092
|
+
"",
|
|
3093
|
+
" Format:",
|
|
3094
|
+
" ```markdown",
|
|
3095
|
+
" ---",
|
|
3096
|
+
' title: "Requirements Scan: <scope>"',
|
|
3097
|
+
" date: YYYY-MM-DD",
|
|
3098
|
+
" parent_issue: <N>",
|
|
3099
|
+
" status: complete",
|
|
3100
|
+
" ---",
|
|
3101
|
+
"",
|
|
3102
|
+
" # Requirements Scan: <scope>",
|
|
3103
|
+
"",
|
|
3104
|
+
" ## Source Documents Reviewed",
|
|
3105
|
+
" - <path> \u2014 <brief description>",
|
|
3106
|
+
"",
|
|
3107
|
+
" ## Existing Requirements Checked",
|
|
3108
|
+
" - <category>: <count> existing docs, <count> open issues",
|
|
3109
|
+
"",
|
|
3110
|
+
" ## Identified Gaps (New)",
|
|
3111
|
+
" ### Gap 1: <Title>",
|
|
3112
|
+
" - **Category:** FR / BR / NFR / SEC / DR / INT / OPS / UX / MT / ADR / TR",
|
|
3113
|
+
" - **Source:** <path to doc + section that revealed this gap>",
|
|
3114
|
+
" - **Priority:** High / Normal / Low",
|
|
3115
|
+
" - **Rationale:** <why this requirement is needed>",
|
|
3116
|
+
" - **Duplicate check:** No existing requirement or open issue found",
|
|
3117
|
+
" - **Proposed scope:** <1-2 sentences on what the requirement should cover>",
|
|
3118
|
+
"",
|
|
3119
|
+
" ## Already Covered",
|
|
3120
|
+
" <list of potential gaps that turned out to already have requirements>",
|
|
3121
|
+
"",
|
|
3122
|
+
" ## In Progress",
|
|
3123
|
+
" <gaps that already have open issues \u2014 include issue numbers>",
|
|
3124
|
+
"",
|
|
3125
|
+
" ## Ambiguous / Needs Human Decision",
|
|
3126
|
+
" <gaps where the correct category or scope is unclear>",
|
|
3127
|
+
" ```",
|
|
3128
|
+
"",
|
|
3129
|
+
"7. **Create downstream issues based on findings:**",
|
|
3130
|
+
" - If any new gaps were identified \u2192 create `req:draft` issue",
|
|
3131
|
+
" (blocked on this issue via `Depends on: #N`).",
|
|
3132
|
+
" - If **no gaps** were found \u2192 stop (no further phases needed). Comment",
|
|
3133
|
+
" on the issue noting that no gaps were identified, and proceed directly",
|
|
3134
|
+
" to commit and push. The scan issue will be marked done with no",
|
|
3135
|
+
" downstream work needed.",
|
|
3136
|
+
"",
|
|
3137
|
+
"8. **Commit and push.**",
|
|
3138
|
+
"",
|
|
3139
|
+
"---",
|
|
3140
|
+
"",
|
|
3141
|
+
"## Phase 2: Draft (`req:draft`)",
|
|
3142
|
+
"",
|
|
3143
|
+
"**Goal:** Expand each identified gap into a requirement proposal with enough",
|
|
3144
|
+
"detail for the requirements-writer to produce a full document.",
|
|
3145
|
+
"",
|
|
3146
|
+
"**Budget:** No web searches. Reading + writing.",
|
|
3147
|
+
"",
|
|
3148
|
+
"### Steps",
|
|
3149
|
+
"",
|
|
3150
|
+
"1. **Read the scan report** from Phase 1.",
|
|
3151
|
+
"",
|
|
3152
|
+
"2. **For each gap**, write a detailed proposal:",
|
|
3153
|
+
"",
|
|
3154
|
+
" ```markdown",
|
|
3155
|
+
" ## Proposed: <PREFIX>-<NNN> \u2014 <Title>",
|
|
3156
|
+
"",
|
|
3157
|
+
" **Category:** <FR/BR/NFR/SEC/DR/INT/OPS/UX/MT/ADR/TR>",
|
|
3158
|
+
" **Priority:** <High/Normal/Low>",
|
|
3159
|
+
" **Source:** <document path and section>",
|
|
3160
|
+
"",
|
|
3161
|
+
" ### Summary",
|
|
3162
|
+
" <2-3 sentences describing what the requirement should capture>",
|
|
3163
|
+
"",
|
|
3164
|
+
" ### Draft Acceptance Criteria",
|
|
3165
|
+
" - [ ] <testable criterion 1>",
|
|
3166
|
+
" - [ ] <testable criterion 2>",
|
|
3167
|
+
" - [ ] <testable criterion 3>",
|
|
3168
|
+
"",
|
|
3169
|
+
" ### Traceability",
|
|
3170
|
+
" - **Implements:** <BR or parent requirement if applicable>",
|
|
3171
|
+
" - **Related:** <existing requirements that interact with this one>",
|
|
3172
|
+
" - **Source:** <BCM doc, competitive analysis, or meeting that revealed",
|
|
3173
|
+
" the gap \u2014 use a markdown link. If the source is a meeting note, the",
|
|
3174
|
+
" downstream requirement doc must include the same meeting as a link in",
|
|
3175
|
+
" its Traceability `Related:` list.>",
|
|
3176
|
+
"",
|
|
3177
|
+
" ### Decision Authority",
|
|
3178
|
+
' <"Direct write" for BR/FR/NFR/SEC/UX, or "Proposed \u2014 needs human',
|
|
3179
|
+
' decision" for ADR/TR, or "Mixed \u2014 defer technology choices" for',
|
|
3180
|
+
" DR/MT/INT/OPS>",
|
|
3181
|
+
"",
|
|
3182
|
+
" ### Notes for Requirements Writer",
|
|
3183
|
+
" <any context the writer should know \u2014 related ADRs, existing partial",
|
|
3184
|
+
" coverage, relevant competitive features>",
|
|
3185
|
+
" ```",
|
|
3186
|
+
"",
|
|
3187
|
+
"3. **Write the proposals** to:",
|
|
3188
|
+
" ```",
|
|
3189
|
+
" <RESEARCH_REQUIREMENTS_ROOT>/req-proposals-<scope>-<YYYY-MM-DD>.md",
|
|
3190
|
+
" ```",
|
|
3191
|
+
"",
|
|
3192
|
+
"4. **Determine next sequence numbers.** Check each target category",
|
|
3193
|
+
" directory under `<REQUIREMENTS_ROOT>/<category>/` to find the next",
|
|
3194
|
+
" available `NNN` for each proposed requirement.",
|
|
3195
|
+
"",
|
|
3196
|
+
"5. **Create the `req:trace` issue** blocked on this draft issue.",
|
|
3197
|
+
"",
|
|
3198
|
+
"6. **Commit and push.**",
|
|
3199
|
+
"",
|
|
3200
|
+
"---",
|
|
3201
|
+
"",
|
|
3202
|
+
"## Phase 3: Trace (`req:trace`)",
|
|
3203
|
+
"",
|
|
3204
|
+
"**Goal:** Create GitHub issues for each proposed requirement and update",
|
|
3205
|
+
"source documents with traceability notes indicating that requirement issues",
|
|
3206
|
+
"were created.",
|
|
3207
|
+
"",
|
|
3208
|
+
"**Budget:** No web searches. Issue creation + minor edits to source",
|
|
3209
|
+
"documents.",
|
|
3210
|
+
"",
|
|
3211
|
+
"### Steps",
|
|
3212
|
+
"",
|
|
3213
|
+
"1. **Read the proposals** from Phase 2.",
|
|
3214
|
+
"",
|
|
3215
|
+
"2. **Create requirement issues.** For each proposal:",
|
|
3216
|
+
"",
|
|
3217
|
+
" All `type:requirement` issues default to `priority:medium` (override",
|
|
3218
|
+
" only if the proposal's priority was explicitly High or Low).",
|
|
3219
|
+
"",
|
|
3220
|
+
" ```bash",
|
|
3221
|
+
" gh issue create \\",
|
|
3222
|
+
' --title "docs(<category>): <PREFIX>-<NNN> \u2014 <title>" \\',
|
|
3223
|
+
' --label "type:requirement" --label "status:ready" --label "priority:medium" \\',
|
|
3224
|
+
' --body "## Objective',
|
|
3225
|
+
" Write <PREFIX>-<NNN> \u2014 <title>.",
|
|
3226
|
+
"",
|
|
3227
|
+
" ## Context",
|
|
3228
|
+
" - **Gap identified by:** requirements scan of <source>",
|
|
3229
|
+
" - **Proposals file:** <RESEARCH_REQUIREMENTS_ROOT>/req-proposals-<scope>-<date>.md",
|
|
3230
|
+
"",
|
|
3231
|
+
" ## Inputs",
|
|
3232
|
+
" - **Depends on:** (none)",
|
|
3233
|
+
" - **Read:** <RESEARCH_REQUIREMENTS_ROOT>/req-proposals-<scope>-<date>.md, <source docs>",
|
|
3234
|
+
"",
|
|
3235
|
+
" ## Acceptance Criteria",
|
|
3236
|
+
" - [ ] Requirement document follows <category> template",
|
|
3237
|
+
" - [ ] Traceability links to source BCM/competitive/product doc",
|
|
3238
|
+
" - [ ] Registry index updated",
|
|
3239
|
+
" - [ ] Decision authority rules followed (direct write vs. proposed)",
|
|
3240
|
+
"",
|
|
3241
|
+
" ## Scope Size",
|
|
3242
|
+
" small",
|
|
3243
|
+
"",
|
|
3244
|
+
" ## Output Path",
|
|
3245
|
+
' <REQUIREMENTS_ROOT>/<category>/<PREFIX>-<NNN>-<slug>.md"',
|
|
3246
|
+
" ```",
|
|
3247
|
+
"",
|
|
3248
|
+
"3. **Update source documents.** In each BCM model doc or competitive",
|
|
3249
|
+
" analysis that was scanned, add a note in the `## Vortex Relevance` or",
|
|
3250
|
+
" `## Strategic Implications` section indicating that a requirement issue",
|
|
3251
|
+
" was created:",
|
|
3252
|
+
"",
|
|
3253
|
+
" ```markdown",
|
|
3254
|
+
" - Gap addressed: see [<PREFIX>-<NNN>](<relative path to requirement doc>)",
|
|
3255
|
+
" (issue #<N>)",
|
|
3256
|
+
" ```",
|
|
3257
|
+
"",
|
|
3258
|
+
"4. **Comment on the scan issue** with a summary of all issues created and",
|
|
3259
|
+
" all docs updated.",
|
|
3260
|
+
"",
|
|
3261
|
+
"5. **Commit and push.**",
|
|
3262
|
+
"",
|
|
3263
|
+
"---",
|
|
3264
|
+
"",
|
|
3265
|
+
"## Coordination with Other Agents",
|
|
3266
|
+
"",
|
|
3267
|
+
"| Direction | Agent | What |",
|
|
3268
|
+
"|-----------|-------|------|",
|
|
3269
|
+
"| Upstream | BCM Writer | Scans `## Vortex Relevance` sections for capability gaps |",
|
|
3270
|
+
"| Upstream | Company Research | Scans competitive analysis for feature comparison gaps |",
|
|
3271
|
+
"| Upstream | Meeting Analyst | Scans meeting extracts for requirement proposals |",
|
|
3272
|
+
"| Downstream | Requirements Writer (BCM Writer) | Creates `type:requirement` issues for the skill to draft |",
|
|
3273
|
+
"",
|
|
3274
|
+
"**File boundaries:** Writes to `<RESEARCH_REQUIREMENTS_ROOT>/req-*.md` and",
|
|
3275
|
+
"minor traceability edits to `<BCM_DOCS_ROOT>` and `<COMPETITIVE_ROOT>`.",
|
|
3276
|
+
"Never writes to `<REQUIREMENTS_ROOT>/` \u2014 that is owned by the",
|
|
3277
|
+
"requirements-writer agent.",
|
|
3278
|
+
"",
|
|
3279
|
+
"---",
|
|
3280
|
+
"",
|
|
3281
|
+
"## Blocked Issues",
|
|
3282
|
+
"",
|
|
3283
|
+
"Additional block reasons specific to requirements synthesis:",
|
|
3284
|
+
"- Source document has unresolved contradictions",
|
|
3285
|
+
"- Category classification is ambiguous (needs human disambiguation)",
|
|
3286
|
+
"- Dependent BCM documents are still in draft with placeholder content",
|
|
3287
|
+
"",
|
|
3288
|
+
"---",
|
|
3289
|
+
"",
|
|
3290
|
+
"## Rules",
|
|
3291
|
+
"",
|
|
3292
|
+
"- **Discover, don't write requirements.** Create issues for the",
|
|
3293
|
+
" requirements-writer \u2014 don't write requirement documents directly.",
|
|
3294
|
+
"- **Deduplicate rigorously.** Check both existing docs and open issues",
|
|
3295
|
+
" before flagging a gap.",
|
|
3296
|
+
"- **Respect decision authority.** Mark ADR/TR proposals as needing human",
|
|
3297
|
+
" decision. Don't create direct-write issues for technology choices.",
|
|
3298
|
+
"- **Bidirectional traceability.** Every `req-scan-*.md` and",
|
|
3299
|
+
" `req-proposals-*.md` must include a `## Produced` section listing the",
|
|
3300
|
+
" downstream requirement issues (and eventual requirement documents) it",
|
|
3301
|
+
" spawned, as markdown links; each formal requirement document under",
|
|
3302
|
+
" `<REQUIREMENTS_ROOT>/` must include a forward link back to the scan or",
|
|
3303
|
+
" proposal that produced it."
|
|
3304
|
+
].join("\n")
|
|
3305
|
+
};
|
|
3306
|
+
var scanRequirementsSkill = {
|
|
3307
|
+
name: "scan-requirements",
|
|
3308
|
+
description: "Kick off a requirements-analyst scan across BCM model docs, competitive analysis, product docs, or meeting extracts. Creates a req:scan issue and dispatches Phase 1.",
|
|
3309
|
+
disableModelInvocation: true,
|
|
3310
|
+
userInvocable: true,
|
|
3311
|
+
context: "fork",
|
|
3312
|
+
agent: "requirements-analyst",
|
|
3313
|
+
platforms: { cursor: { exclude: true } },
|
|
3314
|
+
instructions: [
|
|
3315
|
+
"# Scan Requirements",
|
|
3316
|
+
"",
|
|
3317
|
+
"Kick off a requirements-analyst scan cycle. Creates a `req:scan` issue",
|
|
3318
|
+
"targeted at the requested scope and dispatches Phase 1 (Scan) in the",
|
|
3319
|
+
"requirements-analyst agent.",
|
|
3320
|
+
"",
|
|
3321
|
+
"## Usage",
|
|
3322
|
+
"",
|
|
3323
|
+
"/scan-requirements <scope>",
|
|
3324
|
+
"",
|
|
3325
|
+
"Where `<scope>` is one of:",
|
|
3326
|
+
"- `bcm:<PREFIX-NNN>` \u2014 a single BCM model doc",
|
|
3327
|
+
"- `competitive:<slug>` \u2014 a single competitive analysis doc",
|
|
3328
|
+
"- `product-roadmap` \u2014 the prioritized feature roadmap",
|
|
3329
|
+
"- `entity-taxonomy` \u2014 the entity taxonomy doc",
|
|
3330
|
+
"- `meeting:<slug>` \u2014 a meeting extract",
|
|
3331
|
+
"- `all-bcm` / `all-competitive` \u2014 full sweep (long-running)",
|
|
3332
|
+
"",
|
|
3333
|
+
"## Steps",
|
|
3334
|
+
"",
|
|
3335
|
+
"1. Create a `req:scan` issue with `type:requirement`, `priority:medium`,",
|
|
3336
|
+
" and `status:ready`. Body must list the files to read and the scan scope.",
|
|
3337
|
+
"2. Execute Phase 1 (Scan) of the requirements-analyst agent.",
|
|
3338
|
+
"3. If gaps are found, a `req:draft` issue is created automatically.",
|
|
3339
|
+
"",
|
|
3340
|
+
"## Output",
|
|
3341
|
+
"",
|
|
3342
|
+
"- A `req-scan-<scope>-<YYYY-MM-DD>.md` file under the project's research",
|
|
3343
|
+
" requirements directory.",
|
|
3344
|
+
"- A `req:draft` issue if any gaps were identified."
|
|
3345
|
+
].join("\n")
|
|
3346
|
+
};
|
|
3347
|
+
var requirementsAnalystBundle = {
|
|
3348
|
+
name: "requirements-analyst",
|
|
3349
|
+
description: "Requirements gap-discovery agent bundle for BCM-driven projects. 3-phase pipeline (scan, draft, trace) with req:* phase labels.",
|
|
3350
|
+
appliesWhen: () => true,
|
|
3351
|
+
rules: [
|
|
3352
|
+
{
|
|
3353
|
+
name: "requirements-analyst-workflow",
|
|
3354
|
+
description: "Describes the 3-phase requirements gap-discovery pipeline, the req:* label taxonomy, and the boundary with the downstream requirements-writer agent.",
|
|
3355
|
+
scope: AGENT_RULE_SCOPE.ALWAYS,
|
|
3356
|
+
content: [
|
|
3357
|
+
"# Requirements Analyst Workflow",
|
|
3358
|
+
"",
|
|
3359
|
+
"Use `/scan-requirements <scope>` to kick off a requirements gap",
|
|
3360
|
+
"discovery cycle. The pipeline runs in 3 phases \u2014 scan, draft, trace \u2014",
|
|
3361
|
+
"each tracked by its own GitHub issue labeled `req:scan`, `req:draft`,",
|
|
3362
|
+
"or `req:trace`. All issues carry `type:requirement`.",
|
|
3363
|
+
"",
|
|
3364
|
+
"The requirements-analyst *discovers gaps and drafts proposals*; it",
|
|
3365
|
+
"does **not** write final requirement documents. Writing is the job of",
|
|
3366
|
+
"the downstream requirements-writer (BCM writer) agent. Keep that",
|
|
3367
|
+
"boundary clean: proposals land under the research requirements",
|
|
3368
|
+
"directory, not under the authoritative requirements tree.",
|
|
3369
|
+
"",
|
|
3370
|
+
"See the `requirements-analyst` agent definition for full workflow",
|
|
3371
|
+
"details and phase-by-phase instructions."
|
|
3372
|
+
].join("\n"),
|
|
3373
|
+
platforms: {
|
|
3374
|
+
cursor: { exclude: true }
|
|
3375
|
+
},
|
|
3376
|
+
tags: ["workflow"]
|
|
3377
|
+
}
|
|
3378
|
+
],
|
|
3379
|
+
skills: [scanRequirementsSkill],
|
|
3380
|
+
subAgents: [requirementsAnalystSubAgent],
|
|
3381
|
+
labels: [
|
|
3382
|
+
{
|
|
3383
|
+
name: "type:requirement",
|
|
3384
|
+
color: "1D76DB",
|
|
3385
|
+
description: "Work that produces or discovers a requirement document (FR, BR, NFR, etc.)"
|
|
3386
|
+
},
|
|
3387
|
+
{
|
|
3388
|
+
name: "req:scan",
|
|
3389
|
+
color: "C5DEF5",
|
|
3390
|
+
description: "Phase 1: scan source docs for requirement gaps and deduplicate"
|
|
3391
|
+
},
|
|
3392
|
+
{
|
|
3393
|
+
name: "req:draft",
|
|
3394
|
+
color: "BFDADC",
|
|
3395
|
+
description: "Phase 2: draft requirement proposals for the requirements-writer"
|
|
3396
|
+
},
|
|
3397
|
+
{
|
|
3398
|
+
name: "req:trace",
|
|
3399
|
+
color: "D4C5F9",
|
|
3400
|
+
description: "Phase 3: create requirement issues and backfill traceability on source docs"
|
|
3401
|
+
}
|
|
3402
|
+
]
|
|
3403
|
+
};
|
|
3404
|
+
|
|
2936
3405
|
// src/agent/bundles/slack.ts
|
|
2937
3406
|
var slackBundle = {
|
|
2938
3407
|
name: "slack",
|
|
@@ -3582,7 +4051,8 @@ var BUILT_IN_BUNDLES = [
|
|
|
3582
4051
|
slackBundle,
|
|
3583
4052
|
meetingAnalysisBundle,
|
|
3584
4053
|
orchestratorBundle,
|
|
3585
|
-
prReviewBundle
|
|
4054
|
+
prReviewBundle,
|
|
4055
|
+
requirementsAnalystBundle
|
|
3586
4056
|
];
|
|
3587
4057
|
|
|
3588
4058
|
// src/agent/bundles/scope.ts
|
|
@@ -7110,6 +7580,7 @@ var TypeScriptConfig = class extends import_projen22.Component {
|
|
|
7110
7580
|
pnpmBundle,
|
|
7111
7581
|
prReviewBundle,
|
|
7112
7582
|
projenBundle,
|
|
7583
|
+
requirementsAnalystBundle,
|
|
7113
7584
|
resolveModelAlias,
|
|
7114
7585
|
resolveTemplateVariables,
|
|
7115
7586
|
slackBundle,
|