@codedrifters/configulator 0.0.182 → 0.0.183
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 +22 -1
- package/lib/index.d.ts +22 -1
- package/lib/index.js +316 -8
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +314 -8
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.d.mts
CHANGED
|
@@ -51,6 +51,12 @@ declare const AGENT_MODEL: {
|
|
|
51
51
|
readonly POWERFUL: "powerful";
|
|
52
52
|
};
|
|
53
53
|
type AgentModel = (typeof AGENT_MODEL)[keyof typeof AGENT_MODEL];
|
|
54
|
+
/**
|
|
55
|
+
* Maps abstract AGENT_MODEL values to Claude Code model aliases.
|
|
56
|
+
* Returns undefined for "inherit" (omit the field entirely).
|
|
57
|
+
* Cursor omits the model field to use its default model selection.
|
|
58
|
+
*/
|
|
59
|
+
declare function resolveModelAlias(model: string | undefined): string | undefined;
|
|
54
60
|
/**
|
|
55
61
|
* MCP server transport type.
|
|
56
62
|
*/
|
|
@@ -209,6 +215,15 @@ interface AgentSkill {
|
|
|
209
215
|
* @default 'bash'
|
|
210
216
|
*/
|
|
211
217
|
readonly shell?: string;
|
|
218
|
+
/** Per-platform overrides. Use `exclude: true` to skip a platform. */
|
|
219
|
+
readonly platforms?: {
|
|
220
|
+
readonly claude?: {
|
|
221
|
+
readonly exclude?: boolean;
|
|
222
|
+
};
|
|
223
|
+
readonly cursor?: {
|
|
224
|
+
readonly exclude?: boolean;
|
|
225
|
+
};
|
|
226
|
+
};
|
|
212
227
|
}
|
|
213
228
|
/**
|
|
214
229
|
* Platform-specific overrides for a sub-agent definition.
|
|
@@ -898,6 +913,12 @@ declare const githubWorkflowBundle: AgentRuleBundle;
|
|
|
898
913
|
*/
|
|
899
914
|
declare const jestBundle: AgentRuleBundle;
|
|
900
915
|
|
|
916
|
+
/**
|
|
917
|
+
* Meeting analysis bundle — included by default.
|
|
918
|
+
* Provides a 4-phase meeting transcript processing workflow.
|
|
919
|
+
*/
|
|
920
|
+
declare const meetingAnalysisBundle: AgentRuleBundle;
|
|
921
|
+
|
|
901
922
|
/**
|
|
902
923
|
* PNPM bundle — auto-detected when the PnpmWorkspace component is present.
|
|
903
924
|
*/
|
|
@@ -2919,4 +2940,4 @@ declare const COMPLETE_JOB_ID = "complete";
|
|
|
2919
2940
|
*/
|
|
2920
2941
|
declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
|
|
2921
2942
|
|
|
2922
|
-
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, type AgentConfigOptions, type AgentModel, type AgentPlatform, type AgentPlatformOverrides, type AgentRule, type AgentRuleBundle, type AgentRuleScope, type AgentSkill, type AgentSubAgent, type AgentSubAgentPlatformOverrides, type ApproveMergeUpgradeOptions, type AwsAccount, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, type AwsDeploymentTargetOptions, type AwsLocalDeploymentConfig, type AwsOrganization, type AwsRegion, 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_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 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, pnpmBundle, projenBundle, resolveTemplateVariables, slackBundle, turborepoBundle, typescriptBundle, vitestBundle };
|
|
2943
|
+
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, type AgentConfigOptions, type AgentModel, type AgentPlatform, type AgentPlatformOverrides, type AgentRule, type AgentRuleBundle, type AgentRuleScope, type AgentSkill, type AgentSubAgent, type AgentSubAgentPlatformOverrides, type ApproveMergeUpgradeOptions, type AwsAccount, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, type AwsDeploymentTargetOptions, type AwsLocalDeploymentConfig, type AwsOrganization, type AwsRegion, 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_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 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, pnpmBundle, projenBundle, resolveModelAlias, resolveTemplateVariables, slackBundle, turborepoBundle, typescriptBundle, vitestBundle };
|
package/lib/index.d.ts
CHANGED
|
@@ -100,6 +100,12 @@ declare const AGENT_MODEL: {
|
|
|
100
100
|
readonly POWERFUL: "powerful";
|
|
101
101
|
};
|
|
102
102
|
type AgentModel = (typeof AGENT_MODEL)[keyof typeof AGENT_MODEL];
|
|
103
|
+
/**
|
|
104
|
+
* Maps abstract AGENT_MODEL values to Claude Code model aliases.
|
|
105
|
+
* Returns undefined for "inherit" (omit the field entirely).
|
|
106
|
+
* Cursor omits the model field to use its default model selection.
|
|
107
|
+
*/
|
|
108
|
+
declare function resolveModelAlias(model: string | undefined): string | undefined;
|
|
103
109
|
/**
|
|
104
110
|
* MCP server transport type.
|
|
105
111
|
*/
|
|
@@ -258,6 +264,15 @@ interface AgentSkill {
|
|
|
258
264
|
* @default 'bash'
|
|
259
265
|
*/
|
|
260
266
|
readonly shell?: string;
|
|
267
|
+
/** Per-platform overrides. Use `exclude: true` to skip a platform. */
|
|
268
|
+
readonly platforms?: {
|
|
269
|
+
readonly claude?: {
|
|
270
|
+
readonly exclude?: boolean;
|
|
271
|
+
};
|
|
272
|
+
readonly cursor?: {
|
|
273
|
+
readonly exclude?: boolean;
|
|
274
|
+
};
|
|
275
|
+
};
|
|
261
276
|
}
|
|
262
277
|
/**
|
|
263
278
|
* Platform-specific overrides for a sub-agent definition.
|
|
@@ -947,6 +962,12 @@ declare const githubWorkflowBundle: AgentRuleBundle;
|
|
|
947
962
|
*/
|
|
948
963
|
declare const jestBundle: AgentRuleBundle;
|
|
949
964
|
|
|
965
|
+
/**
|
|
966
|
+
* Meeting analysis bundle — included by default.
|
|
967
|
+
* Provides a 4-phase meeting transcript processing workflow.
|
|
968
|
+
*/
|
|
969
|
+
declare const meetingAnalysisBundle: AgentRuleBundle;
|
|
970
|
+
|
|
950
971
|
/**
|
|
951
972
|
* PNPM bundle — auto-detected when the PnpmWorkspace component is present.
|
|
952
973
|
*/
|
|
@@ -2968,5 +2989,5 @@ declare const COMPLETE_JOB_ID = "complete";
|
|
|
2968
2989
|
*/
|
|
2969
2990
|
declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
|
|
2970
2991
|
|
|
2971
|
-
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, 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, TestRunner, TurboRepo, TurboRepoTask, TypeScriptConfig, TypeScriptProject, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, Vitest, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, awsCdkBundle, baseBundle, getLatestEligibleVersion, githubWorkflowBundle, jestBundle, pnpmBundle, projenBundle, resolveTemplateVariables, slackBundle, turborepoBundle, typescriptBundle, vitestBundle };
|
|
2992
|
+
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, DEFAULT_PRIORITY_LABELS, DEFAULT_STATUS_LABELS, 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, TestRunner, TurboRepo, TurboRepoTask, TypeScriptConfig, TypeScriptProject, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, Vitest, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, awsCdkBundle, baseBundle, getLatestEligibleVersion, githubWorkflowBundle, jestBundle, meetingAnalysisBundle, pnpmBundle, projenBundle, resolveModelAlias, resolveTemplateVariables, slackBundle, turborepoBundle, typescriptBundle, vitestBundle };
|
|
2972
2993
|
export type { AgentConfigOptions, AgentModel, AgentPlatform, AgentPlatformOverrides, AgentRule, AgentRuleBundle, AgentRuleScope, AgentSkill, AgentSubAgent, AgentSubAgentPlatformOverrides, ApproveMergeUpgradeOptions, AwsAccount, AwsDeploymentTargetOptions, AwsLocalDeploymentConfig, AwsOrganization, AwsRegion, 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, SyncLabelsOptions, TemplateResolveResult, TurboRepoOptions, TurboRepoTaskOptions, TypeScriptProjectOptions, VersionKey, VitestConfigOptions, VitestOptions };
|
package/lib/index.js
CHANGED
|
@@ -218,8 +218,10 @@ __export(index_exports, {
|
|
|
218
218
|
getLatestEligibleVersion: () => getLatestEligibleVersion,
|
|
219
219
|
githubWorkflowBundle: () => githubWorkflowBundle,
|
|
220
220
|
jestBundle: () => jestBundle,
|
|
221
|
+
meetingAnalysisBundle: () => meetingAnalysisBundle,
|
|
221
222
|
pnpmBundle: () => pnpmBundle,
|
|
222
223
|
projenBundle: () => projenBundle,
|
|
224
|
+
resolveModelAlias: () => resolveModelAlias,
|
|
223
225
|
resolveTemplateVariables: () => resolveTemplateVariables,
|
|
224
226
|
slackBundle: () => slackBundle,
|
|
225
227
|
turborepoBundle: () => turborepoBundle,
|
|
@@ -253,6 +255,17 @@ var AGENT_MODEL = {
|
|
|
253
255
|
BALANCED: "balanced",
|
|
254
256
|
POWERFUL: "powerful"
|
|
255
257
|
};
|
|
258
|
+
function resolveModelAlias(model) {
|
|
259
|
+
if (!model || model === AGENT_MODEL.INHERIT) {
|
|
260
|
+
return void 0;
|
|
261
|
+
}
|
|
262
|
+
const mapping = {
|
|
263
|
+
[AGENT_MODEL.POWERFUL]: "opus",
|
|
264
|
+
[AGENT_MODEL.BALANCED]: "sonnet",
|
|
265
|
+
[AGENT_MODEL.FAST]: "haiku"
|
|
266
|
+
};
|
|
267
|
+
return mapping[model] ?? model;
|
|
268
|
+
}
|
|
256
269
|
var MCP_TRANSPORT = {
|
|
257
270
|
STDIO: "stdio",
|
|
258
271
|
HTTP: "http",
|
|
@@ -999,6 +1012,297 @@ var jestBundle = {
|
|
|
999
1012
|
}
|
|
1000
1013
|
};
|
|
1001
1014
|
|
|
1015
|
+
// src/agent/bundles/meeting-analysis.ts
|
|
1016
|
+
var meetingAnalystSubAgent = {
|
|
1017
|
+
name: "meeting-analyst",
|
|
1018
|
+
description: "Processes meeting transcripts through a 4-phase pipeline: extract, notes, draft, and link",
|
|
1019
|
+
model: AGENT_MODEL.POWERFUL,
|
|
1020
|
+
maxTurns: 80,
|
|
1021
|
+
platforms: { cursor: { exclude: true } },
|
|
1022
|
+
prompt: [
|
|
1023
|
+
"# Meeting Analyst Agent",
|
|
1024
|
+
"",
|
|
1025
|
+
"You process meeting transcripts through a structured 4-phase pipeline.",
|
|
1026
|
+
"Each phase runs as a **separate agent session**, triggered by its own",
|
|
1027
|
+
"GitHub issue with a `meeting:*` phase label. You handle exactly **one",
|
|
1028
|
+
"phase per session** \u2014 read the issue to determine which phase to execute.",
|
|
1029
|
+
"",
|
|
1030
|
+
"## Execution Model",
|
|
1031
|
+
"",
|
|
1032
|
+
"1. Each meeting produces up to 4 GitHub issues (one per phase)",
|
|
1033
|
+
"2. Each issue carries a `meeting:*` label identifying the phase",
|
|
1034
|
+
"3. You pick up one issue, execute that phase, commit/push, then close the issue",
|
|
1035
|
+
"4. Phase 1 (Extract) creates the downstream phase issues for phases 2-4",
|
|
1036
|
+
"5. Each downstream issue includes `Depends on: #N` linking to its predecessor",
|
|
1037
|
+
"",
|
|
1038
|
+
"## Design Principles",
|
|
1039
|
+
"",
|
|
1040
|
+
"1. **Extract, don't interpret.** Capture what was said and decided. Flag",
|
|
1041
|
+
" ambiguity as open items rather than resolving it.",
|
|
1042
|
+
"2. **Route to the right category.** Meeting content maps to requirements,",
|
|
1043
|
+
" ADRs, product docs, and business strategy. Each output goes to the",
|
|
1044
|
+
" correct location per the project's taxonomy.",
|
|
1045
|
+
"3. **Preserve provenance.** Every extracted item links back to the meeting",
|
|
1046
|
+
" source so reviewers can check context.",
|
|
1047
|
+
"4. **Create issues, not documents.** For requirements and ADRs, create",
|
|
1048
|
+
" GitHub issues that other agents or humans will pick up. Do not write",
|
|
1049
|
+
" final requirement documents yourself.",
|
|
1050
|
+
"5. **Bi-directional traceability.** Every document and issue created by",
|
|
1051
|
+
" this pipeline must link back to the meeting source, and the meeting",
|
|
1052
|
+
" source documents must link forward to everything created from them.",
|
|
1053
|
+
"",
|
|
1054
|
+
"---",
|
|
1055
|
+
"",
|
|
1056
|
+
"## Traceability",
|
|
1057
|
+
"",
|
|
1058
|
+
"All outputs must be bi-directionally linked so any artifact can be traced",
|
|
1059
|
+
"back to the meeting that produced it and forward to everything it spawned.",
|
|
1060
|
+
"",
|
|
1061
|
+
"### Backward links (created artifact \u2192 meeting source)",
|
|
1062
|
+
"",
|
|
1063
|
+
"Every GitHub issue and document created by this pipeline must include a",
|
|
1064
|
+
"`## Traceability` section with:",
|
|
1065
|
+
"",
|
|
1066
|
+
"```markdown",
|
|
1067
|
+
"## Traceability",
|
|
1068
|
+
"",
|
|
1069
|
+
"- **Source meeting:** <path to transcript or meeting notes>",
|
|
1070
|
+
"- **Extraction:** <path to extraction file>",
|
|
1071
|
+
"- **Phase issue:** #<N> (the phase issue that created this artifact)",
|
|
1072
|
+
"```",
|
|
1073
|
+
"",
|
|
1074
|
+
"### Forward links (meeting source \u2192 created artifacts)",
|
|
1075
|
+
"",
|
|
1076
|
+
"After Phase 4 (Link) creates all follow-up issues and documents:",
|
|
1077
|
+
"",
|
|
1078
|
+
"1. **Update the extraction file** with a `## Downstream Artifacts` section",
|
|
1079
|
+
" listing every issue and document created from this meeting:",
|
|
1080
|
+
"",
|
|
1081
|
+
" ```markdown",
|
|
1082
|
+
" ## Downstream Artifacts",
|
|
1083
|
+
"",
|
|
1084
|
+
" | Artifact | Type | Issue/Path |",
|
|
1085
|
+
" |----------|------|------------|",
|
|
1086
|
+
" | <title> | requirement / ADR / action-item / profile | #<N> or <path> |",
|
|
1087
|
+
" ```",
|
|
1088
|
+
"",
|
|
1089
|
+
"2. **Update the meeting notes** with a similar `## Related Issues` section",
|
|
1090
|
+
" listing all issues created from this meeting.",
|
|
1091
|
+
"",
|
|
1092
|
+
"3. **Comment on the extract issue** with a summary linking to all created",
|
|
1093
|
+
" artifacts.",
|
|
1094
|
+
"",
|
|
1095
|
+
"### Within-pipeline links",
|
|
1096
|
+
"",
|
|
1097
|
+
"- Phase issues link to predecessors via `Depends on: #N`",
|
|
1098
|
+
"- Phase issues reference the extraction file path in their body",
|
|
1099
|
+
"- Draft documents reference both the extraction and the meeting notes",
|
|
1100
|
+
"",
|
|
1101
|
+
"---",
|
|
1102
|
+
"",
|
|
1103
|
+
"## Phase 1: Extract (`meeting:extract`)",
|
|
1104
|
+
"",
|
|
1105
|
+
"**Goal:** Read the meeting transcript and categorize all substantive content.",
|
|
1106
|
+
"",
|
|
1107
|
+
"### Steps",
|
|
1108
|
+
"",
|
|
1109
|
+
"1. Read the transcript file specified in the issue body.",
|
|
1110
|
+
"2. Identify and categorize content into these buckets:",
|
|
1111
|
+
"",
|
|
1112
|
+
" | Bucket | What to look for |",
|
|
1113
|
+
" |--------|-----------------|",
|
|
1114
|
+
` | **Decisions** | "We decided...", "Let's go with...", explicit choices |`,
|
|
1115
|
+
' | **Requirements** | Feature descriptions, acceptance criteria, "it should..." |',
|
|
1116
|
+
" | **Technology discussions** | Platform comparisons, architecture options, tool evaluations |",
|
|
1117
|
+
' | **Action items** | "[Person] will...", "Next step is...", assigned tasks |',
|
|
1118
|
+
' | **Open questions** | "We need to figure out...", unresolved debates |',
|
|
1119
|
+
" | **People of interest** | Industry contacts, domain experts mentioned |",
|
|
1120
|
+
" | **Companies of interest** | Competitors, vendors, partners discussed |",
|
|
1121
|
+
" | **Strategic direction** | Business model changes, market positioning |",
|
|
1122
|
+
" | **Product direction** | Roadmap changes, feature prioritization |",
|
|
1123
|
+
"",
|
|
1124
|
+
"3. Write the extraction to a markdown file with structured sections:",
|
|
1125
|
+
" - Attendees",
|
|
1126
|
+
" - Decisions Made (with category and confidence: Firm / Tentative / Needs confirmation)",
|
|
1127
|
+
" - Requirements Identified (with category and priority estimate)",
|
|
1128
|
+
" - Technology Discussions (with status: Decided / Leaning toward / Open)",
|
|
1129
|
+
" - Action Items (with assignee and due date if stated)",
|
|
1130
|
+
" - Open Questions",
|
|
1131
|
+
" - People of Interest (with context and whether a profile exists)",
|
|
1132
|
+
" - Companies of Interest (with type and context)",
|
|
1133
|
+
" - Strategic / Product Direction",
|
|
1134
|
+
"",
|
|
1135
|
+
"4. **Create downstream phase issues** using `gh issue create`:",
|
|
1136
|
+
" - Always create a `meeting:notes` issue (blocked on this extract issue)",
|
|
1137
|
+
" - If requirements OR decisions/ADRs identified, create a `meeting:draft` issue",
|
|
1138
|
+
" (blocked on the notes issue)",
|
|
1139
|
+
" - Always create a `meeting:link` issue \u2014 blocked on the draft issue if one",
|
|
1140
|
+
" was created, otherwise blocked on the notes issue",
|
|
1141
|
+
"",
|
|
1142
|
+
"5. Commit, push, and close the extract issue.",
|
|
1143
|
+
"",
|
|
1144
|
+
"---",
|
|
1145
|
+
"",
|
|
1146
|
+
"## Phase 2: Notes (`meeting:notes`)",
|
|
1147
|
+
"",
|
|
1148
|
+
"**Goal:** Transform the extraction into structured meeting notes.",
|
|
1149
|
+
"",
|
|
1150
|
+
"### Steps",
|
|
1151
|
+
"",
|
|
1152
|
+
"1. Read the extraction file referenced in the issue body (output of Phase 1).",
|
|
1153
|
+
"2. Write structured meeting notes with these sections:",
|
|
1154
|
+
" - Meeting metadata (title, date, attendees)",
|
|
1155
|
+
" - Agenda / topics covered",
|
|
1156
|
+
" - Key Discussion Points (organized by topic)",
|
|
1157
|
+
" - Decisions (numbered, with rationale)",
|
|
1158
|
+
" - Action Items (table: who, what, when)",
|
|
1159
|
+
" - Open Questions",
|
|
1160
|
+
" - Follow-up items",
|
|
1161
|
+
"3. Commit, push, and close the notes issue.",
|
|
1162
|
+
"",
|
|
1163
|
+
"---",
|
|
1164
|
+
"",
|
|
1165
|
+
"## Phase 3: Draft (`meeting:draft`)",
|
|
1166
|
+
"",
|
|
1167
|
+
"**Goal:** Draft proposals for requirements, ADRs, and product/strategy updates.",
|
|
1168
|
+
"",
|
|
1169
|
+
"This phase only exists if the extraction identified requirements, architectural",
|
|
1170
|
+
"decisions, or strategy changes. If this issue exists, execute it.",
|
|
1171
|
+
"",
|
|
1172
|
+
"### Steps",
|
|
1173
|
+
"",
|
|
1174
|
+
"1. Read the extraction file from Phase 1.",
|
|
1175
|
+
"2. Check existing requirement registries and ADR registries for duplicates.",
|
|
1176
|
+
"3. Draft requirement proposals with:",
|
|
1177
|
+
" - Category (FR, BR, NFR, etc.)",
|
|
1178
|
+
" - Summary (2-3 sentences)",
|
|
1179
|
+
" - Draft acceptance criteria",
|
|
1180
|
+
" - Related existing requirements",
|
|
1181
|
+
"4. Draft ADR proposals for technology decisions with:",
|
|
1182
|
+
" - Context and problem statement",
|
|
1183
|
+
" - Options discussed",
|
|
1184
|
+
" - Stated preferences or decisions",
|
|
1185
|
+
" - Status: Proposed or Decided",
|
|
1186
|
+
"5. Summarize product/strategy document updates needed.",
|
|
1187
|
+
"6. Commit, push, and close the draft issue.",
|
|
1188
|
+
"",
|
|
1189
|
+
"---",
|
|
1190
|
+
"",
|
|
1191
|
+
"## Phase 4: Link (`meeting:link`)",
|
|
1192
|
+
"",
|
|
1193
|
+
"**Goal:** Create GitHub issues for follow-up work, cross-reference the",
|
|
1194
|
+
"meeting into existing documentation, and complete bi-directional traceability.",
|
|
1195
|
+
"",
|
|
1196
|
+
"### Steps",
|
|
1197
|
+
"",
|
|
1198
|
+
"1. Read the drafts from Phase 3 (if they exist) and the extraction from Phase 1.",
|
|
1199
|
+
"2. Create requirement issues using `gh issue create` with appropriate labels.",
|
|
1200
|
+
" Include a `## Traceability` section in each issue body linking back to",
|
|
1201
|
+
" the source meeting and extraction file.",
|
|
1202
|
+
"3. Create ADR issues if technology decisions need formal records.",
|
|
1203
|
+
" Include a `## Traceability` section in each.",
|
|
1204
|
+
"4. Create action item issues for tasks that are not document-related.",
|
|
1205
|
+
" Include a `## Traceability` section in each.",
|
|
1206
|
+
"5. Cross-reference the meeting in any existing documents that were discussed.",
|
|
1207
|
+
"6. Apply direct product/strategy doc updates for items flagged as **Firm**",
|
|
1208
|
+
" confidence in the extraction.",
|
|
1209
|
+
"7. **Update the extraction file** with a `## Downstream Artifacts` section",
|
|
1210
|
+
" listing every issue and document created from this meeting.",
|
|
1211
|
+
"8. **Update the meeting notes** with a `## Related Issues` section listing",
|
|
1212
|
+
" all issues created from this meeting.",
|
|
1213
|
+
"9. Comment on the parent extract issue with a summary linking to all",
|
|
1214
|
+
" created artifacts.",
|
|
1215
|
+
"10. Commit and push (if any file changes were made), then close the link issue.",
|
|
1216
|
+
"",
|
|
1217
|
+
"---",
|
|
1218
|
+
"",
|
|
1219
|
+
"## GitHub Integration",
|
|
1220
|
+
"",
|
|
1221
|
+
"- Use `gh` CLI for all GitHub operations",
|
|
1222
|
+
"- Apply the appropriate `meeting:*` phase label to each phase issue",
|
|
1223
|
+
"- Use `type:docs` for documentation-producing issues, `type:chore` for",
|
|
1224
|
+
" maintenance/organizational tasks",
|
|
1225
|
+
"- Use `status:` labels to track progress (`status:ready`, `status:in-progress`, `status:done`)",
|
|
1226
|
+
"- Reference the source meeting transcript in all created issues",
|
|
1227
|
+
"- Link phase issues with `Depends on: #N` to enforce ordering",
|
|
1228
|
+
"",
|
|
1229
|
+
"## When to Shorten the Pipeline",
|
|
1230
|
+
"",
|
|
1231
|
+
"- **Short meetings** (<30 min, <2000 words): combine extract + notes into one session",
|
|
1232
|
+
"- **No requirements or decisions**: Phase 1 skips creating the `meeting:draft` issue",
|
|
1233
|
+
"- **Only action items**: extract + notes + link (3 phase issues)"
|
|
1234
|
+
].join("\n")
|
|
1235
|
+
};
|
|
1236
|
+
var processMeetingSkill = {
|
|
1237
|
+
name: "process-meeting",
|
|
1238
|
+
description: "Process a meeting transcript through the 4-phase meeting analysis pipeline",
|
|
1239
|
+
disableModelInvocation: true,
|
|
1240
|
+
userInvocable: true,
|
|
1241
|
+
context: "fork",
|
|
1242
|
+
agent: "meeting-analyst",
|
|
1243
|
+
platforms: { cursor: { exclude: true } },
|
|
1244
|
+
instructions: [
|
|
1245
|
+
"# Process Meeting Transcript",
|
|
1246
|
+
"",
|
|
1247
|
+
"Kick off meeting transcript processing by executing Phase 1 (Extract)",
|
|
1248
|
+
"and creating downstream phase issues for the remaining phases.",
|
|
1249
|
+
"",
|
|
1250
|
+
"## Usage",
|
|
1251
|
+
"",
|
|
1252
|
+
"/process-meeting <path-to-transcript>",
|
|
1253
|
+
"",
|
|
1254
|
+
"## Steps",
|
|
1255
|
+
"",
|
|
1256
|
+
"1. Read the provided transcript file",
|
|
1257
|
+
"2. Execute Phase 1 (Extract) \u2014 categorize transcript content into",
|
|
1258
|
+
" decisions, requirements, action items, open questions, and more",
|
|
1259
|
+
"3. Write the extraction to a markdown file",
|
|
1260
|
+
"4. Create downstream phase issues using `gh issue create`:",
|
|
1261
|
+
" - `meeting:notes` issue (always)",
|
|
1262
|
+
" - `meeting:draft` issue (if requirements or decisions were found)",
|
|
1263
|
+
" - `meeting:link` issue (always)",
|
|
1264
|
+
"5. Each downstream issue includes `Depends on:` linking to its predecessor",
|
|
1265
|
+
"6. Commit and push the extraction file",
|
|
1266
|
+
"",
|
|
1267
|
+
"## Input",
|
|
1268
|
+
"",
|
|
1269
|
+
"Provide a path to a meeting transcript file (text or markdown).",
|
|
1270
|
+
"The transcript should contain speaker-attributed dialogue.",
|
|
1271
|
+
"",
|
|
1272
|
+
"## Output",
|
|
1273
|
+
"",
|
|
1274
|
+
"- An extraction markdown file with categorized meeting content",
|
|
1275
|
+
"- Phase issues with `meeting:*` labels for downstream agent sessions",
|
|
1276
|
+
" to pick up (notes, draft, link)"
|
|
1277
|
+
].join("\n")
|
|
1278
|
+
};
|
|
1279
|
+
var meetingAnalysisBundle = {
|
|
1280
|
+
name: "meeting-analysis",
|
|
1281
|
+
description: "Meeting transcript processing workflow with 4-phase pipeline (extract, notes, draft, link)",
|
|
1282
|
+
appliesWhen: () => true,
|
|
1283
|
+
rules: [
|
|
1284
|
+
{
|
|
1285
|
+
name: "meeting-processing-workflow",
|
|
1286
|
+
description: "Describes the 4-phase meeting processing pipeline, extraction taxonomy, and labeling conventions",
|
|
1287
|
+
scope: AGENT_RULE_SCOPE.ALWAYS,
|
|
1288
|
+
content: [
|
|
1289
|
+
"# Meeting Processing Workflow",
|
|
1290
|
+
"",
|
|
1291
|
+
"Use `/process-meeting <path>` to process a meeting transcript through a",
|
|
1292
|
+
"4-phase pipeline (extract \u2192 notes \u2192 draft \u2192 link). Each phase runs as a",
|
|
1293
|
+
"separate agent session tracked by a GitHub issue with a `meeting:*` label.",
|
|
1294
|
+
"See the `meeting-analyst` agent definition for full workflow details."
|
|
1295
|
+
].join("\n"),
|
|
1296
|
+
platforms: {
|
|
1297
|
+
cursor: { exclude: true }
|
|
1298
|
+
},
|
|
1299
|
+
tags: ["workflow"]
|
|
1300
|
+
}
|
|
1301
|
+
],
|
|
1302
|
+
skills: [processMeetingSkill],
|
|
1303
|
+
subAgents: [meetingAnalystSubAgent]
|
|
1304
|
+
};
|
|
1305
|
+
|
|
1002
1306
|
// src/pnpm/pnpm-workspace.ts
|
|
1003
1307
|
var import_path = require("path");
|
|
1004
1308
|
var import_projen = require("projen");
|
|
@@ -2015,7 +2319,8 @@ var BUILT_IN_BUNDLES = [
|
|
|
2015
2319
|
awsCdkBundle,
|
|
2016
2320
|
projenBundle,
|
|
2017
2321
|
githubWorkflowBundle,
|
|
2018
|
-
slackBundle
|
|
2322
|
+
slackBundle,
|
|
2323
|
+
meetingAnalysisBundle
|
|
2019
2324
|
];
|
|
2020
2325
|
|
|
2021
2326
|
// src/agent/bundles/scope.ts
|
|
@@ -2347,6 +2652,7 @@ var ClaudeRenderer = class _ClaudeRenderer {
|
|
|
2347
2652
|
}
|
|
2348
2653
|
static renderSkills(component, skills) {
|
|
2349
2654
|
for (const skill of skills) {
|
|
2655
|
+
if (skill.platforms?.claude?.exclude) continue;
|
|
2350
2656
|
const lines = [];
|
|
2351
2657
|
lines.push("---");
|
|
2352
2658
|
lines.push(`name: "${skill.name}"`);
|
|
@@ -2357,8 +2663,9 @@ var ClaudeRenderer = class _ClaudeRenderer {
|
|
|
2357
2663
|
if (skill.userInvocable === false) {
|
|
2358
2664
|
lines.push(`user-invocable: false`);
|
|
2359
2665
|
}
|
|
2360
|
-
|
|
2361
|
-
|
|
2666
|
+
const resolvedSkillModel = resolveModelAlias(skill.model);
|
|
2667
|
+
if (resolvedSkillModel) {
|
|
2668
|
+
lines.push(`model: "${resolvedSkillModel}"`);
|
|
2362
2669
|
}
|
|
2363
2670
|
if (skill.effort) {
|
|
2364
2671
|
lines.push(`effort: "${skill.effort}"`);
|
|
@@ -2400,8 +2707,9 @@ var ClaudeRenderer = class _ClaudeRenderer {
|
|
|
2400
2707
|
lines.push(`name: ${agent.name}`);
|
|
2401
2708
|
lines.push(`description: >-`);
|
|
2402
2709
|
lines.push(` ${agent.description}`);
|
|
2403
|
-
|
|
2404
|
-
|
|
2710
|
+
const resolvedModel = resolveModelAlias(agent.model);
|
|
2711
|
+
if (resolvedModel) {
|
|
2712
|
+
lines.push(`model: ${resolvedModel}`);
|
|
2405
2713
|
}
|
|
2406
2714
|
if (agent.tools && agent.tools.length > 0) {
|
|
2407
2715
|
lines.push(`tools:`);
|
|
@@ -2514,6 +2822,7 @@ var CursorRenderer = class _CursorRenderer {
|
|
|
2514
2822
|
}
|
|
2515
2823
|
static renderSkills(component, skills) {
|
|
2516
2824
|
for (const skill of skills) {
|
|
2825
|
+
if (skill.platforms?.cursor?.exclude) continue;
|
|
2517
2826
|
const lines = [];
|
|
2518
2827
|
lines.push("---");
|
|
2519
2828
|
lines.push(`name: "${skill.name}"`);
|
|
@@ -2555,9 +2864,6 @@ var CursorRenderer = class _CursorRenderer {
|
|
|
2555
2864
|
lines.push(`name: ${agent.name}`);
|
|
2556
2865
|
lines.push(`description: >-`);
|
|
2557
2866
|
lines.push(` ${agent.description}`);
|
|
2558
|
-
if (agent.model) {
|
|
2559
|
-
lines.push(`model: ${agent.model}`);
|
|
2560
|
-
}
|
|
2561
2867
|
if (agent.platforms?.cursor?.readonly) {
|
|
2562
2868
|
lines.push(`readonly: true`);
|
|
2563
2869
|
}
|
|
@@ -4711,8 +5017,10 @@ var AwsDeployWorkflow = class _AwsDeployWorkflow extends import_projen17.Compone
|
|
|
4711
5017
|
getLatestEligibleVersion,
|
|
4712
5018
|
githubWorkflowBundle,
|
|
4713
5019
|
jestBundle,
|
|
5020
|
+
meetingAnalysisBundle,
|
|
4714
5021
|
pnpmBundle,
|
|
4715
5022
|
projenBundle,
|
|
5023
|
+
resolveModelAlias,
|
|
4716
5024
|
resolveTemplateVariables,
|
|
4717
5025
|
slackBundle,
|
|
4718
5026
|
turborepoBundle,
|