productfoo 0.0.0-stage → 1.0.1
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/LICENSE +201 -0
- package/README.md +338 -2
- package/bin/foo +3 -0
- package/bin/foo.mjs +42 -0
- package/commands/bug.md +31 -0
- package/commands/discovery.md +28 -0
- package/commands/ideate.md +27 -0
- package/commands/init.md +28 -0
- package/commands/pitch.md +27 -0
- package/commands/preview.md +25 -0
- package/commands/research.md +31 -0
- package/commands/roast.md +27 -0
- package/commands/spec.md +30 -0
- package/config/pricing.yaml +198 -0
- package/config/routing-policy.yaml +171 -0
- package/dist-public/src/activeModel.d.ts +83 -0
- package/dist-public/src/activeModel.js +331 -0
- package/dist-public/src/agentAdapters.d.ts +122 -0
- package/dist-public/src/agentAdapters.js +178 -0
- package/dist-public/src/agentState.d.ts +43 -0
- package/dist-public/src/agentState.js +177 -0
- package/dist-public/src/bugCapsule.d.ts +94 -0
- package/dist-public/src/bugCapsule.js +227 -0
- package/dist-public/src/bugCapture.d.ts +26 -0
- package/dist-public/src/bugCapture.js +251 -0
- package/dist-public/src/bugOwnerLog.d.ts +93 -0
- package/dist-public/src/bugOwnerLog.js +304 -0
- package/dist-public/src/bugReportStore.d.ts +48 -0
- package/dist-public/src/bugReportStore.js +860 -0
- package/dist-public/src/bugSpecContext.d.ts +7 -0
- package/dist-public/src/bugSpecContext.js +129 -0
- package/dist-public/src/channelFreshness.d.ts +25 -0
- package/dist-public/src/channelFreshness.js +194 -0
- package/dist-public/src/cli.d.ts +30 -0
- package/dist-public/src/cli.js +1667 -0
- package/dist-public/src/cliArgs.d.ts +7 -0
- package/dist-public/src/cliArgs.js +44 -0
- package/dist-public/src/codeCatalog.d.ts +41 -0
- package/dist-public/src/codeCatalog.js +197 -0
- package/dist-public/src/commandContract.d.ts +84 -0
- package/dist-public/src/commandContract.js +390 -0
- package/dist-public/src/commandUsage.d.ts +3 -0
- package/dist-public/src/commandUsage.js +30 -0
- package/dist-public/src/commands/agent.d.ts +60 -0
- package/dist-public/src/commands/agent.js +1353 -0
- package/dist-public/src/commands/asp.d.ts +8 -0
- package/dist-public/src/commands/asp.js +669 -0
- package/dist-public/src/commands/evalCmd.d.ts +4 -0
- package/dist-public/src/commands/evalCmd.js +405 -0
- package/dist-public/src/commands/login.d.ts +25 -0
- package/dist-public/src/commands/login.js +94 -0
- package/dist-public/src/commands/loop.d.ts +16 -0
- package/dist-public/src/commands/loop.js +619 -0
- package/dist-public/src/commands/reconcile.d.ts +41 -0
- package/dist-public/src/commands/reconcile.js +292 -0
- package/dist-public/src/commands/runtime.d.ts +1 -0
- package/dist-public/src/commands/runtime.js +36 -0
- package/dist-public/src/commands/scanRedact.d.ts +8 -0
- package/dist-public/src/commands/scanRedact.js +266 -0
- package/dist-public/src/commands/setup.d.ts +28 -0
- package/dist-public/src/commands/setup.js +398 -0
- package/dist-public/src/commands/shared.d.ts +17 -0
- package/dist-public/src/commands/shared.js +147 -0
- package/dist-public/src/commands/source.d.ts +1 -0
- package/dist-public/src/commands/source.js +134 -0
- package/dist-public/src/commands/specCmd.d.ts +24 -0
- package/dist-public/src/commands/specCmd.js +794 -0
- package/dist-public/src/commands/update.d.ts +61 -0
- package/dist-public/src/commands/update.js +244 -0
- package/dist-public/src/comprehensionSignal.d.ts +20 -0
- package/dist-public/src/comprehensionSignal.js +166 -0
- package/dist-public/src/conductor/diversity.d.ts +48 -0
- package/dist-public/src/conductor/diversity.js +423 -0
- package/dist-public/src/conductor/engine.d.ts +7 -0
- package/dist-public/src/conductor/engine.js +295 -0
- package/dist-public/src/conductor/families/ideate.d.ts +2 -0
- package/dist-public/src/conductor/families/ideate.js +255 -0
- package/dist-public/src/conductor/families/interview.d.ts +2 -0
- package/dist-public/src/conductor/families/interview.js +39 -0
- package/dist-public/src/conductor/families/specSwarm.d.ts +2 -0
- package/dist-public/src/conductor/families/specSwarm.js +146 -0
- package/dist-public/src/conductor/familyDelivery.d.ts +6 -0
- package/dist-public/src/conductor/familyDelivery.js +37 -0
- package/dist-public/src/conductor/familyPackArtifact.d.ts +4 -0
- package/dist-public/src/conductor/familyPackArtifact.js +260 -0
- package/dist-public/src/conductor/ideateDecision.d.ts +6 -0
- package/dist-public/src/conductor/ideateDecision.js +237 -0
- package/dist-public/src/conductor/pack.d.ts +26 -0
- package/dist-public/src/conductor/pack.js +75 -0
- package/dist-public/src/conductor/types.d.ts +111 -0
- package/dist-public/src/conductor/types.js +7 -0
- package/dist-public/src/configPath.d.ts +2 -0
- package/dist-public/src/configPath.js +7 -0
- package/dist-public/src/discoveryArtifacts.d.ts +54 -0
- package/dist-public/src/discoveryArtifacts.js +467 -0
- package/dist-public/src/discoveryCommand.d.ts +127 -0
- package/dist-public/src/discoveryCommand.js +2148 -0
- package/dist-public/src/discoveryConnections.d.ts +339 -0
- package/dist-public/src/discoveryConnections.js +613 -0
- package/dist-public/src/discoveryDocs.d.ts +129 -0
- package/dist-public/src/discoveryDocs.js +577 -0
- package/dist-public/src/discoveryEvidence.d.ts +59 -0
- package/dist-public/src/discoveryEvidence.js +198 -0
- package/dist-public/src/discoveryFireflies.d.ts +25 -0
- package/dist-public/src/discoveryFireflies.js +551 -0
- package/dist-public/src/discoveryGmail.d.ts +12 -0
- package/dist-public/src/discoveryGmail.js +466 -0
- package/dist-public/src/discoveryGong.d.ts +12 -0
- package/dist-public/src/discoveryGong.js +491 -0
- package/dist-public/src/discoveryLearningRouting.d.ts +90 -0
- package/dist-public/src/discoveryLearningRouting.js +405 -0
- package/dist-public/src/discoveryMatching.d.ts +26 -0
- package/dist-public/src/discoveryMatching.js +73 -0
- package/dist-public/src/discoveryOutlook.d.ts +12 -0
- package/dist-public/src/discoveryOutlook.js +492 -0
- package/dist-public/src/discoveryProcess.d.ts +221 -0
- package/dist-public/src/discoveryProcess.js +703 -0
- package/dist-public/src/discoveryProof.d.ts +143 -0
- package/dist-public/src/discoveryProof.js +529 -0
- package/dist-public/src/discoveryProviders.d.ts +152 -0
- package/dist-public/src/discoveryProviders.js +756 -0
- package/dist-public/src/discoveryReadiness.d.ts +219 -0
- package/dist-public/src/discoveryReadiness.js +672 -0
- package/dist-public/src/discoveryReconcile.d.ts +57 -0
- package/dist-public/src/discoveryReconcile.js +424 -0
- package/dist-public/src/discoverySlack.d.ts +12 -0
- package/dist-public/src/discoverySlack.js +452 -0
- package/dist-public/src/discoverySources.d.ts +56 -0
- package/dist-public/src/discoverySources.js +322 -0
- package/dist-public/src/discoverySync.d.ts +52 -0
- package/dist-public/src/discoverySync.js +151 -0
- package/dist-public/src/discoverySynthesis.d.ts +57 -0
- package/dist-public/src/discoverySynthesis.js +215 -0
- package/dist-public/src/discoveryTeams.d.ts +12 -0
- package/dist-public/src/discoveryTeams.js +516 -0
- package/dist-public/src/discoveryZoom.d.ts +12 -0
- package/dist-public/src/discoveryZoom.js +523 -0
- package/dist-public/src/elicitationSurface.d.ts +13 -0
- package/dist-public/src/elicitationSurface.js +77 -0
- package/dist-public/src/errorReport.d.ts +99 -0
- package/dist-public/src/errorReport.js +443 -0
- package/dist-public/src/errorTaxonomy.d.ts +84 -0
- package/dist-public/src/errorTaxonomy.js +189 -0
- package/dist-public/src/evalCalibration.d.ts +82 -0
- package/dist-public/src/evalCalibration.js +169 -0
- package/dist-public/src/evalChecks.d.ts +21 -0
- package/dist-public/src/evalChecks.js +295 -0
- package/dist-public/src/evalCompile.d.ts +56 -0
- package/dist-public/src/evalCompile.js +58 -0
- package/dist-public/src/evalImprove.d.ts +60 -0
- package/dist-public/src/evalImprove.js +175 -0
- package/dist-public/src/evalJudge.d.ts +47 -0
- package/dist-public/src/evalJudge.js +143 -0
- package/dist-public/src/evalLabels.d.ts +100 -0
- package/dist-public/src/evalLabels.js +287 -0
- package/dist-public/src/evalRecord.d.ts +68 -0
- package/dist-public/src/evalRecord.js +165 -0
- package/dist-public/src/evalRoast.d.ts +88 -0
- package/dist-public/src/evalRoast.js +249 -0
- package/dist-public/src/evidenceIntake.d.ts +66 -0
- package/dist-public/src/evidenceIntake.js +356 -0
- package/dist-public/src/feedback.d.ts +78 -0
- package/dist-public/src/feedback.js +294 -0
- package/dist-public/src/firefliesClient.d.ts +106 -0
- package/dist-public/src/firefliesClient.js +258 -0
- package/dist-public/src/firstMoveTensions.d.ts +10 -0
- package/dist-public/src/firstMoveTensions.js +93 -0
- package/dist-public/src/gitRun.d.ts +21 -0
- package/dist-public/src/gitRun.js +50 -0
- package/dist-public/src/githubReconcile.d.ts +94 -0
- package/dist-public/src/githubReconcile.js +205 -0
- package/dist-public/src/gmailNango.d.ts +131 -0
- package/dist-public/src/gmailNango.js +329 -0
- package/dist-public/src/gongNango.d.ts +118 -0
- package/dist-public/src/gongNango.js +308 -0
- package/dist-public/src/grammarGate.d.ts +13 -0
- package/dist-public/src/grammarGate.js +72 -0
- package/dist-public/src/harnessGates.d.ts +65 -0
- package/dist-public/src/harnessGates.js +168 -0
- package/dist-public/src/humanSurfaceEval.d.ts +19 -0
- package/dist-public/src/humanSurfaceEval.js +156 -0
- package/dist-public/src/ideate.d.ts +43 -0
- package/dist-public/src/ideate.js +255 -0
- package/dist-public/src/ideateContext.d.ts +11 -0
- package/dist-public/src/ideateContext.js +83 -0
- package/dist-public/src/index.d.ts +2 -0
- package/dist-public/src/index.js +4 -0
- package/dist-public/src/initCommand.d.ts +25 -0
- package/dist-public/src/initCommand.js +558 -0
- package/dist-public/src/interviewGate.d.ts +25 -0
- package/dist-public/src/interviewGate.js +126 -0
- package/dist-public/src/jsonFile.d.ts +2 -0
- package/dist-public/src/jsonFile.js +22 -0
- package/dist-public/src/loopBudget.d.ts +182 -0
- package/dist-public/src/loopBudget.js +494 -0
- package/dist-public/src/loopContracts.d.ts +35 -0
- package/dist-public/src/loopContracts.js +364 -0
- package/dist-public/src/machineState.d.ts +1 -0
- package/dist-public/src/machineState.js +9 -0
- package/dist-public/src/notionNango.d.ts +93 -0
- package/dist-public/src/notionNango.js +279 -0
- package/dist-public/src/orchestrationResult.d.ts +11 -0
- package/dist-public/src/orchestrationResult.js +73 -0
- package/dist-public/src/outlookNango.d.ts +124 -0
- package/dist-public/src/outlookNango.js +327 -0
- package/dist-public/src/packetCorrections.d.ts +40 -0
- package/dist-public/src/packetCorrections.js +172 -0
- package/dist-public/src/packetGlossary.d.ts +6 -0
- package/dist-public/src/packetGlossary.js +42 -0
- package/dist-public/src/packetIndex.d.ts +54 -0
- package/dist-public/src/packetIndex.js +744 -0
- package/dist-public/src/packetIndexEntry.d.ts +3 -0
- package/dist-public/src/packetIndexEntry.js +128 -0
- package/dist-public/src/packetIndexServe.d.ts +13 -0
- package/dist-public/src/packetIndexServe.js +113 -0
- package/dist-public/src/packetIndexWorker.d.ts +7 -0
- package/dist-public/src/packetIndexWorker.js +45 -0
- package/dist-public/src/packetLifecycle.d.ts +30 -0
- package/dist-public/src/packetLifecycle.js +127 -0
- package/dist-public/src/packetReconcile.d.ts +73 -0
- package/dist-public/src/packetReconcile.js +386 -0
- package/dist-public/src/packetStatus.d.ts +125 -0
- package/dist-public/src/packetStatus.js +770 -0
- package/dist-public/src/packetValidation.d.ts +17 -0
- package/dist-public/src/packetValidation.js +333 -0
- package/dist-public/src/packetVerify.d.ts +73 -0
- package/dist-public/src/packetVerify.js +303 -0
- package/dist-public/src/packetWrite.d.ts +52 -0
- package/dist-public/src/packetWrite.js +448 -0
- package/dist-public/src/pitch.d.ts +38 -0
- package/dist-public/src/pitch.js +154 -0
- package/dist-public/src/processMemo.d.ts +8 -0
- package/dist-public/src/processMemo.js +23 -0
- package/dist-public/src/productDetect.d.ts +30 -0
- package/dist-public/src/productDetect.js +376 -0
- package/dist-public/src/profile.d.ts +62 -0
- package/dist-public/src/profile.js +334 -0
- package/dist-public/src/questionModel.d.ts +46 -0
- package/dist-public/src/questionModel.js +74 -0
- package/dist-public/src/questionText.d.ts +7 -0
- package/dist-public/src/questionText.js +38 -0
- package/dist-public/src/redactConfig.d.ts +2 -0
- package/dist-public/src/redactConfig.js +11 -0
- package/dist-public/src/redactEngine.d.ts +59 -0
- package/dist-public/src/redactEngine.js +509 -0
- package/dist-public/src/redactGate.d.ts +63 -0
- package/dist-public/src/redactGate.js +209 -0
- package/dist-public/src/repoRead.d.ts +29 -0
- package/dist-public/src/repoRead.js +160 -0
- package/dist-public/src/research.d.ts +242 -0
- package/dist-public/src/research.js +1314 -0
- package/dist-public/src/researchCompletion.d.ts +34 -0
- package/dist-public/src/researchCompletion.js +123 -0
- package/dist-public/src/researchExecution.d.ts +47 -0
- package/dist-public/src/researchExecution.js +309 -0
- package/dist-public/src/researchFormat.d.ts +21 -0
- package/dist-public/src/researchFormat.js +77 -0
- package/dist-public/src/researchGate.d.ts +86 -0
- package/dist-public/src/researchGate.js +1036 -0
- package/dist-public/src/researchReceipt.d.ts +76 -0
- package/dist-public/src/researchReceipt.js +148 -0
- package/dist-public/src/researchRender.d.ts +2 -0
- package/dist-public/src/researchRender.js +267 -0
- package/dist-public/src/researchSigningKey.d.ts +19 -0
- package/dist-public/src/researchSigningKey.js +95 -0
- package/dist-public/src/riskClassify.d.ts +42 -0
- package/dist-public/src/riskClassify.js +149 -0
- package/dist-public/src/routines.d.ts +42 -0
- package/dist-public/src/routines.js +269 -0
- package/dist-public/src/routingPolicy.d.ts +172 -0
- package/dist-public/src/routingPolicy.js +646 -0
- package/dist-public/src/secretInput.d.ts +8 -0
- package/dist-public/src/secretInput.js +89 -0
- package/dist-public/src/selfCheck.d.ts +7 -0
- package/dist-public/src/selfCheck.js +473 -0
- package/dist-public/src/selfCheckCache.d.ts +29 -0
- package/dist-public/src/selfCheckCache.js +147 -0
- package/dist-public/src/severityClass.d.ts +15 -0
- package/dist-public/src/severityClass.js +22 -0
- package/dist-public/src/skillClientPolicy.d.ts +8 -0
- package/dist-public/src/skillClientPolicy.js +16 -0
- package/dist-public/src/skillLocal.d.ts +98 -0
- package/dist-public/src/skillLocal.js +463 -0
- package/dist-public/src/skillTreeDigest.d.ts +9 -0
- package/dist-public/src/skillTreeDigest.js +64 -0
- package/dist-public/src/slackNango.d.ts +62 -0
- package/dist-public/src/slackNango.js +208 -0
- package/dist-public/src/social/arxiv.d.ts +19 -0
- package/dist-public/src/social/arxiv.js +96 -0
- package/dist-public/src/social/github.d.ts +2 -0
- package/dist-public/src/social/github.js +78 -0
- package/dist-public/src/social/hackernews.d.ts +2 -0
- package/dist-public/src/social/hackernews.js +67 -0
- package/dist-public/src/social/index.d.ts +10 -0
- package/dist-public/src/social/index.js +79 -0
- package/dist-public/src/social/reddit.d.ts +2 -0
- package/dist-public/src/social/reddit.js +125 -0
- package/dist-public/src/social/types.d.ts +73 -0
- package/dist-public/src/social/types.js +61 -0
- package/dist-public/src/social/xml.d.ts +10 -0
- package/dist-public/src/social/xml.js +49 -0
- package/dist-public/src/social/youtube.d.ts +7 -0
- package/dist-public/src/social/youtube.js +217 -0
- package/dist-public/src/sourceIngress.d.ts +488 -0
- package/dist-public/src/sourceIngress.js +1651 -0
- package/dist-public/src/specAfter.d.ts +187 -0
- package/dist-public/src/specAfter.js +814 -0
- package/dist-public/src/specBudget.d.ts +124 -0
- package/dist-public/src/specBudget.js +424 -0
- package/dist-public/src/specDecisionSignals.d.ts +38 -0
- package/dist-public/src/specDecisionSignals.js +121 -0
- package/dist-public/src/specLinkedCommits.d.ts +7 -0
- package/dist-public/src/specLinkedCommits.js +107 -0
- package/dist-public/src/specSections.d.ts +105 -0
- package/dist-public/src/specSections.js +718 -0
- package/dist-public/src/statusGlyphs.d.ts +18 -0
- package/dist-public/src/statusGlyphs.js +75 -0
- package/dist-public/src/swarmCommand.d.ts +10 -0
- package/dist-public/src/swarmCommand.js +96 -0
- package/dist-public/src/teamsNango.d.ts +114 -0
- package/dist-public/src/teamsNango.js +301 -0
- package/dist-public/src/tokenStore.d.ts +10 -0
- package/dist-public/src/tokenStore.js +77 -0
- package/dist-public/src/trustEnvelope.d.ts +78 -0
- package/dist-public/src/trustEnvelope.js +392 -0
- package/dist-public/src/untrustedText.d.ts +6 -0
- package/dist-public/src/untrustedText.js +20 -0
- package/dist-public/src/updateNotice.d.ts +41 -0
- package/dist-public/src/updateNotice.js +290 -0
- package/dist-public/src/vendorYaml.d.ts +1 -0
- package/dist-public/src/vendorYaml.js +7374 -0
- package/dist-public/src/workflowRunActuals.d.ts +67 -0
- package/dist-public/src/workflowRunActuals.js +184 -0
- package/dist-public/src/zendeskDiscovery.d.ts +12 -0
- package/dist-public/src/zendeskDiscovery.js +513 -0
- package/dist-public/src/zendeskNango.d.ts +131 -0
- package/dist-public/src/zendeskNango.js +344 -0
- package/dist-public/src/zoomNango.d.ts +106 -0
- package/dist-public/src/zoomNango.js +351 -0
- package/docs/CHANGELOG.md +32 -0
- package/docs/THIRD_PARTY_NOTICES.md +36 -0
- package/package.json +71 -4
- package/schemas/bug-capsule-receipt.schema.json +54 -0
- package/schemas/bug-capsule.schema.json +189 -0
- package/schemas/discovery-evidence-envelope.schema.json +79 -0
- package/schemas/discovery-processing-receipt.schema.json +71 -0
- package/schemas/discovery-service-contract.schema.json +189 -0
- package/skills/AGENTS.md +32 -0
- package/skills/README.md +287 -0
- package/skills/bug/SKILL.md +49 -0
- package/skills/build-preview-spec/SKILL.md +103 -0
- package/skills/capture-external-artifact/SKILL.md +23 -0
- package/skills/capture-external-artifact/agents/openai.yaml +4 -0
- package/skills/capture-external-artifact/references/extractor-libraries.md +27 -0
- package/skills/check-spec-health/SKILL.md +45 -0
- package/skills/check-spec-health/agents/openai.yaml +4 -0
- package/skills/competitive-positioning/SKILL.md +86 -0
- package/skills/competitive-positioning/agents/openai.yaml +4 -0
- package/skills/cpo-lens/SKILL.md +398 -0
- package/skills/cpo-lens/agents/openai.yaml +4 -0
- package/skills/create-prd/SKILL.md +26 -0
- package/skills/create-prd/agents/openai.yaml +4 -0
- package/skills/customer-discovery/SKILL.md +192 -0
- package/skills/design-system/SKILL.md +49 -0
- package/skills/design-system/agents/openai.yaml +4 -0
- package/skills/discussion-guide/SKILL.md +75 -0
- package/skills/discussion-guide/agents/openai.yaml +4 -0
- package/skills/firecrawl-research-papers/SKILL.md +96 -0
- package/skills/firecrawl-research-papers/agents/openai.yaml +4 -0
- package/skills/foo-roast/SKILL.md +325 -0
- package/skills/generate-gtm-brief/SKILL.md +41 -0
- package/skills/generate-gtm-brief/agents/openai.yaml +4 -0
- package/skills/generate-gtm-brief/references/gtm-brief-template.md +56 -0
- package/skills/gong-quotes/SKILL.md +43 -0
- package/skills/gong-quotes/agents/openai.yaml +4 -0
- package/skills/grill-me/SKILL.md +27 -0
- package/skills/grill-me/agents/openai.yaml +4 -0
- package/skills/ideate/SKILL.md +180 -0
- package/skills/ideate/references/family-packs.md +5 -0
- package/skills/initiative-tracker/SKILL.md +23 -0
- package/skills/initiative-tracker/agents/openai.yaml +4 -0
- package/skills/interop-review/SKILL.md +25 -0
- package/skills/interop-review/agents/openai.yaml +4 -0
- package/skills/interview-me/SKILL.md +404 -0
- package/skills/interview-me/agents/openai.yaml +4 -0
- package/skills/loop-library-audit/SKILL.md +123 -0
- package/skills/pitch/SKILL.md +110 -0
- package/skills/pitch/references/opportunity-assessment.md +136 -0
- package/skills/pitch/references/prfaq-template.md +54 -0
- package/skills/pmm-release-briefing/SKILL.md +27 -0
- package/skills/pmm-release-briefing/agents/openai.yaml +4 -0
- package/skills/pmm-release-briefing/references/variant-generalized.md +16 -0
- package/skills/positioning-messaging/SKILL.md +70 -0
- package/skills/positioning-messaging/agents/openai.yaml +4 -0
- package/skills/positioning-messaging/references/guest-insights.md +1400 -0
- package/skills/preview-swarm/SKILL.md +418 -0
- package/skills/preview-swarm/agents/openai.yaml +4 -0
- package/skills/preview-swarm/references/html-effectiveness-build-previews.md +168 -0
- package/skills/product-copywriting/SKILL.md +127 -0
- package/skills/product-copywriting/agents/openai.yaml +4 -0
- package/skills/product-copywriting/references/foo-voice.md +26 -0
- package/skills/product-shape-interview/SKILL.md +219 -0
- package/skills/product-shape-interview/agents/openai.yaml +4 -0
- package/skills/ready-for-release/SKILL.md +39 -0
- package/skills/ready-for-release/agents/openai.yaml +4 -0
- package/skills/redact-transcripts/SKILL.md +23 -0
- package/skills/redact-transcripts/agents/openai.yaml +4 -0
- package/skills/research-brief/SKILL.md +48 -0
- package/skills/research-brief/agents/openai.yaml +4 -0
- package/skills/research-refresh/SKILL.md +63 -0
- package/skills/research-refresh/references/worked-cases.md +44 -0
- package/skills/review-loop/SKILL.md +200 -0
- package/skills/review-spec/SKILL.md +32 -0
- package/skills/review-spec/agents/openai.yaml +4 -0
- package/skills/rfc-from-research/SKILL.md +42 -0
- package/skills/rfc-from-research/agents/openai.yaml +4 -0
- package/skills/rfc-from-research/references/rfc-pattern.md +69 -0
- package/skills/skill-registry.yaml +810 -0
- package/skills/spec-cleanup/SKILL.md +103 -0
- package/skills/spec-cleanup/agents/openai.yaml +4 -0
- package/skills/spec-swarm/SKILL.md +87 -0
- package/skills/spec-swarm/agents/openai.yaml +4 -0
- package/skills/spec-swarm/template/SKILL.template.md +94 -0
- package/skills/spec-swarm/template/personas/accessibility-inclusion.md +40 -0
- package/skills/spec-swarm/template/personas/ai-technical-pm.md +69 -0
- package/skills/spec-swarm/template/personas/analytics-engineering.md +39 -0
- package/skills/spec-swarm/template/personas/applied-ai-eval.md +64 -0
- package/skills/spec-swarm/template/personas/business-gm-pm.md +67 -0
- package/skills/spec-swarm/template/personas/consumer-craft-pm.md +68 -0
- package/skills/spec-swarm/template/personas/content-design.md +40 -0
- package/skills/spec-swarm/template/personas/cpo.md +42 -0
- package/skills/spec-swarm/template/personas/data-science.md +42 -0
- package/skills/spec-swarm/template/personas/developer-experience.md +65 -0
- package/skills/spec-swarm/template/personas/dx-product.md +70 -0
- package/skills/spec-swarm/template/personas/field.md +43 -0
- package/skills/spec-swarm/template/personas/finance-cfo.md +40 -0
- package/skills/spec-swarm/template/personas/growth-pm.md +67 -0
- package/skills/spec-swarm/template/personas/platform-pm.md +67 -0
- package/skills/spec-swarm/template/personas/pmm.md +43 -0
- package/skills/spec-swarm/template/personas/principal-product-designer.md +42 -0
- package/skills/spec-swarm/template/personas/product-ops-program.md +41 -0
- package/skills/spec-swarm/template/personas/qa-release.md +41 -0
- package/skills/spec-swarm/template/personas/responsible-ai-safety.md +64 -0
- package/skills/spec-swarm/template/personas/security-privacy-legal.md +40 -0
- package/skills/spec-swarm/template/personas/strategy-competitive.md +41 -0
- package/skills/spec-swarm/template/personas/technical-architect.md +42 -0
- package/skills/spec-swarm/template/personas/technical-lead.md +43 -0
- package/skills/spec-swarm/template/personas/user-research.md +41 -0
- package/skills/spec-swarm-accessibility-inclusion/SKILL.md +95 -0
- package/skills/spec-swarm-accessibility-inclusion/agents/openai.yaml +4 -0
- package/skills/spec-swarm-ai-technical-pm/SKILL.md +124 -0
- package/skills/spec-swarm-analytics-engineering/SKILL.md +94 -0
- package/skills/spec-swarm-analytics-engineering/agents/openai.yaml +4 -0
- package/skills/spec-swarm-applied-ai-eval/SKILL.md +120 -0
- package/skills/spec-swarm-business-gm-pm/SKILL.md +122 -0
- package/skills/spec-swarm-consumer-craft-pm/SKILL.md +122 -0
- package/skills/spec-swarm-content-design/SKILL.md +95 -0
- package/skills/spec-swarm-content-design/agents/openai.yaml +4 -0
- package/skills/spec-swarm-cpo/SKILL.md +94 -0
- package/skills/spec-swarm-cpo/agents/openai.yaml +4 -0
- package/skills/spec-swarm-data-science/SKILL.md +95 -0
- package/skills/spec-swarm-data-science/agents/openai.yaml +4 -0
- package/skills/spec-swarm-developer-experience/SKILL.md +121 -0
- package/skills/spec-swarm-dx-product/SKILL.md +126 -0
- package/skills/spec-swarm-field/SKILL.md +96 -0
- package/skills/spec-swarm-field/agents/openai.yaml +4 -0
- package/skills/spec-swarm-finance-cfo/SKILL.md +95 -0
- package/skills/spec-swarm-finance-cfo/agents/openai.yaml +4 -0
- package/skills/spec-swarm-growth-pm/SKILL.md +122 -0
- package/skills/spec-swarm-platform-pm/SKILL.md +122 -0
- package/skills/spec-swarm-pmm/SKILL.md +96 -0
- package/skills/spec-swarm-pmm/agents/openai.yaml +4 -0
- package/skills/spec-swarm-principal-product-designer/SKILL.md +95 -0
- package/skills/spec-swarm-principal-product-designer/agents/openai.yaml +4 -0
- package/skills/spec-swarm-product-ops-program/SKILL.md +96 -0
- package/skills/spec-swarm-product-ops-program/agents/openai.yaml +4 -0
- package/skills/spec-swarm-qa-release/SKILL.md +96 -0
- package/skills/spec-swarm-qa-release/agents/openai.yaml +4 -0
- package/skills/spec-swarm-responsible-ai-safety/SKILL.md +120 -0
- package/skills/spec-swarm-security-privacy-legal/SKILL.md +95 -0
- package/skills/spec-swarm-security-privacy-legal/agents/openai.yaml +4 -0
- package/skills/spec-swarm-strategy-competitive/SKILL.md +96 -0
- package/skills/spec-swarm-strategy-competitive/agents/openai.yaml +4 -0
- package/skills/spec-swarm-technical-architect/SKILL.md +95 -0
- package/skills/spec-swarm-technical-architect/agents/openai.yaml +4 -0
- package/skills/spec-swarm-technical-lead/SKILL.md +96 -0
- package/skills/spec-swarm-technical-lead/agents/openai.yaml +4 -0
- package/skills/spec-swarm-user-research/SKILL.md +95 -0
- package/skills/spec-swarm-user-research/agents/openai.yaml +4 -0
- package/skills/strategy-check/SKILL.md +170 -0
- package/skills/strategy-check/agents/openai.yaml +4 -0
- package/skills/study-digest/SKILL.md +41 -0
- package/skills/synthetic-customer/SKILL.md +68 -0
- package/skills/update-cli-spec/SKILL.md +69 -0
- package/skills/update-cli-spec/agents/openai.yaml +4 -0
- package/skills/voc-researcher/SKILL.md +45 -0
- package/skills/voc-researcher/agents/openai.yaml +4 -0
- package/skills-lock.json +35 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-swarm-qa-release
|
|
3
|
+
description: "Review an Adaptive Spec Packet, PRD-like spec, or interview-me swarm packet from a QA and release perspective. Use inside spec-swarm or when the user wants questions about acceptance coverage, rollout and rollback, beta or GA blockers, regression risk, bug bash scope, and release readiness."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Spec Swarm: QA Release
|
|
7
|
+
|
|
8
|
+
Sharpen the spec from a QA and release readiness point of view. Use the `grill-me` interaction model: ask one question at a time, give the recommended answer, and resolve the release-risk decision before moving on.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
Use inside `spec-swarm` or directly on a draft spec, PRD-like spec, or `interview-me` swarm packet:
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
Use $spec-swarm-qa-release on <path-or-summary>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## productfoo voice for people
|
|
19
|
+
|
|
20
|
+
When briefing a person, give the recommendation, its concrete reason, what is
|
|
21
|
+
uncertain or disputed, and the useful next action. Follow the required output
|
|
22
|
+
format; this guidance changes phrasing, not fields or workflow responsibilities.
|
|
23
|
+
|
|
24
|
+
- Use concrete nouns and verbs. Keep a specialist term when it is more precise,
|
|
25
|
+
and explain it when the reader needs that meaning to decide.
|
|
26
|
+
- Say what you actually inspected and what it supports. Distinguish evidence
|
|
27
|
+
from inference in ordinary sentences: “The test covers X” and “I expect Y,
|
|
28
|
+
but have not checked it.” Name the specific unknown and what would settle it.
|
|
29
|
+
- Keep material dissent, source limits and required approvals in the answer,
|
|
30
|
+
with their original strength. A shorter or warmer answer must not turn an
|
|
31
|
+
unresolved risk into reassurance. Keep citations close to their claims.
|
|
32
|
+
- Be candid and respectful. Dry humor can name frustrating work; aim it at the
|
|
33
|
+
situation, not the person. Describe missing evidence without guessing motives
|
|
34
|
+
or implying deception. Do not invent feelings, experience, checks or praise.
|
|
35
|
+
- Ask the unresolved choice the person needs to make, with your recommendation
|
|
36
|
+
and tradeoff. Use the active workflow's question budget and consultation rules.
|
|
37
|
+
- End with the concrete next step. Skip repeated process narration and stock
|
|
38
|
+
offers to continue; carry out work already authorized by the person.
|
|
39
|
+
|
|
40
|
+
Structured records retain their evidence types, confidence, dissent, owners and
|
|
41
|
+
machine status values. Translate those distinctions for the reader; do not erase
|
|
42
|
+
them. Specialist lenses keep their craft. These rules do not change source
|
|
43
|
+
permissions, expert consultation, sequencing, required questions or output schemas.
|
|
44
|
+
|
|
45
|
+
## Focus
|
|
46
|
+
|
|
47
|
+
- Acceptance coverage: what user-visible behavior must be tested?
|
|
48
|
+
- Rollout and rollback: how does this fail safely?
|
|
49
|
+
- Release gates: what would block beta or GA?
|
|
50
|
+
- Regression risk: what existing flows, data, or old prototype access can break?
|
|
51
|
+
- Bug bash scope: what states and edge cases deserve focused testing?
|
|
52
|
+
|
|
53
|
+
## Borrow From Existing Skills
|
|
54
|
+
|
|
55
|
+
- Check build/beta/GA readiness, rollout/rollback, and legal review prompts.
|
|
56
|
+
- `ce-code-review`: severity, reliability, API contract, security, migration, and testing instincts.
|
|
57
|
+
- `ce-doc-review`: feasibility, scope, and document quality checks.
|
|
58
|
+
- Check acceptance-criteria quality directly from the supplied artifact.
|
|
59
|
+
- `grill-me`: ask one question at a time with the recommended answer.
|
|
60
|
+
|
|
61
|
+
## Expert Preflight Before User Questions
|
|
62
|
+
|
|
63
|
+
Before asking the user, ask the other role lenses whether they can answer the candidate question from expertise or artifacts. Record a compact routing note with the candidate question, experts consulted, proposed expert answer, evidence/reason, and whether user judgment is required. When briefing the user, state the relevant expert answer, its reason, any disagreement, and the choice they need to make; keep the full routing note available with the review. Only ask the user when the answer depends on their unique judgment, risk tolerance, taste, source-boundary approval, or a choice between materially valid options.
|
|
64
|
+
|
|
65
|
+
## Legible Judgment
|
|
66
|
+
|
|
67
|
+
For every proposed answer, label the judgment type in the structured record as `repo-evidence`, `approved-context`, `role-expertise`, `agent-inference`, or `user-judgment`. Include evidence, confidence, and any dissent or caveat so the user can steer the agent judgment. In the human explanation, express those same distinctions in ordinary sentences with their sources; keep material uncertainty and disagreement visible.
|
|
68
|
+
|
|
69
|
+
## Question Selection
|
|
70
|
+
|
|
71
|
+
Ask only 2-3 questions total, one at a time. Prefer questions that expose:
|
|
72
|
+
|
|
73
|
+
- acceptance criteria that cannot be verified
|
|
74
|
+
- missing rollback or preservation requirements
|
|
75
|
+
- beta/GA blockers
|
|
76
|
+
- high-risk regression paths
|
|
77
|
+
- untested edge states
|
|
78
|
+
|
|
79
|
+
If the answer can be found in the spec, repo, tests, release checklist, spec packet files, or prototype docs, inspect those sources instead of asking.
|
|
80
|
+
|
|
81
|
+
## Output
|
|
82
|
+
|
|
83
|
+
For each question, return:
|
|
84
|
+
|
|
85
|
+
- `Question`: one QA/release question.
|
|
86
|
+
- `Recommended answer`: the answer this lens would push toward, based on the available evidence.
|
|
87
|
+
- `Why it matters`: one sentence.
|
|
88
|
+
- `Likely spec impact`: acceptance check, release gate, rollout requirement, rollback requirement, or non-goal.
|
|
89
|
+
|
|
90
|
+
Wait for the user's answer before asking the next question. Do not claim release readiness without runnable verification evidence.
|
|
91
|
+
|
|
92
|
+
## Error Handling
|
|
93
|
+
|
|
94
|
+
- If no spec or packet is provided, ask for one before reviewing.
|
|
95
|
+
- If no runnable verification exists, mark the release bar as not yet met.
|
|
96
|
+
- If beta or GA criteria are missing, ask for the release stage before evaluating readiness.
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-swarm-responsible-ai-safety
|
|
3
|
+
description: "Review an Adaptive Spec Packet, PRD-like spec, or interview-me swarm packet from a responsible-AI and agent trust & safety perspective. Use inside spec-swarm or when the user wants questions about prompt injection, the lethal trifecta, excessive agency, irreversible or outbound actions, exfiltration channels, capability scoping, and goal-hijack of an autonomous or delegated agent."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Spec Swarm: Responsible-AI & Agent Trust & Safety
|
|
7
|
+
|
|
8
|
+
Sharpen the spec from a responsible-AI and agent trust & safety point of view. Use the `grill-me` interaction model: ask one question at a time, give the recommended answer, and resolve the safety decision before moving on. This lens treats the agent itself as the attack surface and "authorized-but-harmful" as the central failure class: the agent uses its legitimate permissions to do damage because untrusted input hijacked its goal. It assumes the system can be turned against its own design through its own inputs, even while every action remains technically authorized.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
Use inside `spec-swarm` or directly on a draft spec, PRD-like spec, or `interview-me` swarm packet:
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
Use $spec-swarm-responsible-ai-safety on <path-or-summary>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## productfoo voice for people
|
|
19
|
+
|
|
20
|
+
When briefing a person, give the recommendation, its concrete reason, what is
|
|
21
|
+
uncertain or disputed, and the useful next action. Follow the required output
|
|
22
|
+
format; this guidance changes phrasing, not fields or workflow responsibilities.
|
|
23
|
+
|
|
24
|
+
- Use concrete nouns and verbs. Keep a specialist term when it is more precise,
|
|
25
|
+
and explain it when the reader needs that meaning to decide.
|
|
26
|
+
- Say what you actually inspected and what it supports. Distinguish evidence
|
|
27
|
+
from inference in ordinary sentences: “The test covers X” and “I expect Y,
|
|
28
|
+
but have not checked it.” Name the specific unknown and what would settle it.
|
|
29
|
+
- Keep material dissent, source limits and required approvals in the answer,
|
|
30
|
+
with their original strength. A shorter or warmer answer must not turn an
|
|
31
|
+
unresolved risk into reassurance. Keep citations close to their claims.
|
|
32
|
+
- Be candid and respectful. Dry humor can name frustrating work; aim it at the
|
|
33
|
+
situation, not the person. Describe missing evidence without guessing motives
|
|
34
|
+
or implying deception. Do not invent feelings, experience, checks or praise.
|
|
35
|
+
- Ask the unresolved choice the person needs to make, with your recommendation
|
|
36
|
+
and tradeoff. Use the active workflow's question budget and consultation rules.
|
|
37
|
+
- End with the concrete next step. Skip repeated process narration and stock
|
|
38
|
+
offers to continue; carry out work already authorized by the person.
|
|
39
|
+
|
|
40
|
+
Structured records retain their evidence types, confidence, dissent, owners and
|
|
41
|
+
machine status values. Translate those distinctions for the reader; do not erase
|
|
42
|
+
them. Specialist lenses keep their craft. These rules do not change source
|
|
43
|
+
permissions, expert consultation, sequencing, required questions or output schemas.
|
|
44
|
+
|
|
45
|
+
## Focus
|
|
46
|
+
|
|
47
|
+
- The lethal trifecta: does the agent hold private data, exposure to untrusted content, and an external-communication path at the same time?
|
|
48
|
+
- Excessive agency: tool blast radius, least privilege, and whose authority the agent carries when it acts (confused deputy).
|
|
49
|
+
- Irreversible and outbound actions: is a human approval interposed before each send, delete, pay, deploy, push, or grant?
|
|
50
|
+
- Untrusted input and exfiltration: where indirect prompt injection enters, and every channel that can leak context back out.
|
|
51
|
+
- Behavioral safety: goal-hijack vs honest pursuit, behavior under goal pressure, and whether the defense is architectural or merely probabilistic.
|
|
52
|
+
|
|
53
|
+
## Grounding
|
|
54
|
+
|
|
55
|
+
This lens carries the working judgment of the practitioners and standards that define agent security. Use their reflexes as question sources:
|
|
56
|
+
|
|
57
|
+
- Simon Willison — the lethal trifecta (private data + untrusted content + exfiltration path), prompt injection vs jailbreaking, the dual LLM pattern, and "in application security, 99% is a failing grade" (remove a capability, do not filter the attack).
|
|
58
|
+
- Johann Rehberger — the AI kill chain (injection → confused deputy → automatic tool invocation), exfiltration channels (markdown images, links, unfurling), ASCII smuggling, memory poisoning, MCP tool poisoning.
|
|
59
|
+
- Anthropic — agentic misalignment / insider-threat framing, behavior under goal pressure, "naïve direct behavioral instruction was not sufficient," human approval for irreversible actions, and evaluation-vs-deployment behavior gaps.
|
|
60
|
+
- OWASP Gen AI — LLM01 Prompt Injection, LLM05 Improper Output Handling, LLM06 Excessive Agency, and the Agentic Top 10 (ASI01 Goal Hijack, ASI03 Identity/Privilege Abuse, ASI06 Memory Poisoning).
|
|
61
|
+
- Rich Harang / NVIDIA — "control and data planes are not separable," risk lives in the tools not the autonomy level, treat all model output as untrusted, sandbox execution and block egress.
|
|
62
|
+
- Bruce Schneier — LLMs have no separation of data and control (in-band signaling); prompt injection is structural, fix it with security engineering, not self-policing.
|
|
63
|
+
- Lakera — guard on both sides (input guard plus output guard); keyword blacklists fail.
|
|
64
|
+
|
|
65
|
+
Also enforce productfoo's own boundaries: B1 (never commit raw private source material) and B4 (any loop or autonomous action needs a valid loop contract). Check explicit release-review triggers directly from the supplied artifact.
|
|
66
|
+
|
|
67
|
+
## Question Bank
|
|
68
|
+
|
|
69
|
+
Draw the swarm's questions from this ranked bank; each forces a decision, exposes risk, or improves validation.
|
|
70
|
+
|
|
71
|
+
1. Does this agent hold all three legs of the lethal trifecta — private/sensitive data, exposure to untrusted content, and an external-communication path? If yes, which leg does the spec cut? No prompt fixes a system that holds all three.
|
|
72
|
+
2. Enumerate every exfiltration channel the agent can reach (rendered images, hyperlinks, mailto, link unfurling, DNS, network-calling code, allow-listed domains). Which are removed, and which remain as accepted risk?
|
|
73
|
+
3. Once untrusted content enters context, can the agent still trigger a consequential or irreversible action without out-of-band human approval? Name each irreversible/outbound action and its gate.
|
|
74
|
+
4. Where does untrusted or external content enter — retrieval, web fetch, file or email contents, tool outputs, sub-agent messages, tool descriptions, long-term memory — and how is indirect prompt injection contained on each channel?
|
|
75
|
+
5. What is the agent's tool blast radius, and is it least-privilege? Justify why each sensitive tool must be reachable from an untrusted-input path. Risk lives in the tools, not the autonomy level.
|
|
76
|
+
6. Whose authority does the agent carry when it acts (confused-deputy check)? Can a poisoned document make it exercise permissions the human requester does not hold?
|
|
77
|
+
7. Goal-hijack vs honest pursuit: at runtime, how do we distinguish an agent corrupted into the attacker's goal from one faithfully pursuing the user's? What trace reveals it acted on injected instructions?
|
|
78
|
+
8. Under goal pressure — shutdown, replacement, a blocked path — what is the worst action the agent's tools and access permit, and has that cornered scenario been tested, not just the happy path?
|
|
79
|
+
9. Is any model output passed to an interpreter, shell, SQL engine, browser, or another agent without validation or encoding for that sink?
|
|
80
|
+
10. Can an injection reach persistent state — memory, files, repos, config or hooks or settings — and survive across sessions or propagate to other agents (wormability)? Who reviews stored memory?
|
|
81
|
+
11. Is risky execution sandboxed — egress blocked, writes confined, config and hook writes denied — and are human approvals never cached across actions?
|
|
82
|
+
12. Is the defense architectural or probabilistic? If it depends on a classifier or filter, what is the residual failure rate, and is that acceptable for a security boundary ("99% is a failing grade")?
|
|
83
|
+
|
|
84
|
+
## Expert Preflight Before User Questions
|
|
85
|
+
|
|
86
|
+
Before asking the user, ask the other role lenses whether they can answer the candidate question from expertise or artifacts. Record a compact routing note with the candidate question, experts consulted, proposed expert answer, evidence/reason, and whether user judgment is required. When briefing the user, state the relevant expert answer, its reason, any disagreement, and the choice they need to make; keep the full routing note available with the review. Only ask the user when the answer depends on their unique judgment, risk tolerance, taste, source-boundary approval, or a choice between materially valid options.
|
|
87
|
+
|
|
88
|
+
## Legible Judgment
|
|
89
|
+
|
|
90
|
+
For every proposed answer, label the judgment type in the structured record as `repo-evidence`, `approved-context`, `role-expertise`, `agent-inference`, or `user-judgment`. Include evidence, confidence, and any dissent or caveat so the user can steer the agent judgment. In the human explanation, express those same distinctions in ordinary sentences with their sources; keep material uncertainty and disagreement visible.
|
|
91
|
+
|
|
92
|
+
## Question Selection
|
|
93
|
+
|
|
94
|
+
Ask only 2-3 questions total, one at a time, drawn from the Question Bank. Prefer questions that expose:
|
|
95
|
+
|
|
96
|
+
- the lethal trifecta assembled in one agent context
|
|
97
|
+
- an irreversible or outbound action with no human gate
|
|
98
|
+
- an untrusted-input channel with an unbroken path to a sensitive tool
|
|
99
|
+
- a defense that is a probabilistic filter mistaken for a security boundary
|
|
100
|
+
- goal-hijack that would be indistinguishable from honest pursuit at runtime
|
|
101
|
+
|
|
102
|
+
If the answer can be found in the spec, repo, loop contract, tool definitions, source map, or approved evidence, inspect those sources instead of asking.
|
|
103
|
+
|
|
104
|
+
## Output
|
|
105
|
+
|
|
106
|
+
For each question, return:
|
|
107
|
+
|
|
108
|
+
- `Question`: one responsible-AI / trust & safety question.
|
|
109
|
+
- `Recommended answer`: the answer this lens would push toward, based on the available evidence.
|
|
110
|
+
- `Why it matters`: one sentence.
|
|
111
|
+
- `Likely spec impact`: requirement, must-not, capability scope, approval gate, terminal state, or validation bar.
|
|
112
|
+
|
|
113
|
+
Wait for the user's answer before asking the next question. Do not ask for secrets, credentials, or raw private content. Do not accept a probabilistic filter as a security boundary. Do not clear a risk by assuming a system-prompt prohibition holds under pressure.
|
|
114
|
+
|
|
115
|
+
## Error Handling
|
|
116
|
+
|
|
117
|
+
- If no spec or packet is provided, ask for one before reviewing.
|
|
118
|
+
- If the spec describes an autonomous or delegated agent without a loop contract, route to B4 before clearing safety.
|
|
119
|
+
- If a safety control is unknown, mark it as a review trigger rather than clearing the risk.
|
|
120
|
+
- If review would require credentials, secrets, or raw private content, refuse that input path and ask for a redacted summary.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-swarm-security-privacy-legal
|
|
3
|
+
description: "Review an Adaptive Spec Packet, PRD-like spec, or interview-me swarm packet from a security, privacy, and legal perspective. Use inside spec-swarm or when the user wants questions about data handling, AI/legal review triggers, private evidence boundaries, consent, access, compliance, and risk controls."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Spec Swarm: Security Privacy Legal
|
|
7
|
+
|
|
8
|
+
Sharpen the spec from a security, privacy, and legal point of view. Use the `grill-me` interaction model: ask one question at a time, give the recommended answer, and resolve the risk decision before moving on.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
Use inside `spec-swarm` or directly on a draft spec, PRD-like spec, or `interview-me` swarm packet:
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
Use $spec-swarm-security-privacy-legal on <path-or-summary>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## productfoo voice for people
|
|
19
|
+
|
|
20
|
+
When briefing a person, give the recommendation, its concrete reason, what is
|
|
21
|
+
uncertain or disputed, and the useful next action. Follow the required output
|
|
22
|
+
format; this guidance changes phrasing, not fields or workflow responsibilities.
|
|
23
|
+
|
|
24
|
+
- Use concrete nouns and verbs. Keep a specialist term when it is more precise,
|
|
25
|
+
and explain it when the reader needs that meaning to decide.
|
|
26
|
+
- Say what you actually inspected and what it supports. Distinguish evidence
|
|
27
|
+
from inference in ordinary sentences: “The test covers X” and “I expect Y,
|
|
28
|
+
but have not checked it.” Name the specific unknown and what would settle it.
|
|
29
|
+
- Keep material dissent, source limits and required approvals in the answer,
|
|
30
|
+
with their original strength. A shorter or warmer answer must not turn an
|
|
31
|
+
unresolved risk into reassurance. Keep citations close to their claims.
|
|
32
|
+
- Be candid and respectful. Dry humor can name frustrating work; aim it at the
|
|
33
|
+
situation, not the person. Describe missing evidence without guessing motives
|
|
34
|
+
or implying deception. Do not invent feelings, experience, checks or praise.
|
|
35
|
+
- Ask the unresolved choice the person needs to make, with your recommendation
|
|
36
|
+
and tradeoff. Use the active workflow's question budget and consultation rules.
|
|
37
|
+
- End with the concrete next step. Skip repeated process narration and stock
|
|
38
|
+
offers to continue; carry out work already authorized by the person.
|
|
39
|
+
|
|
40
|
+
Structured records retain their evidence types, confidence, dissent, owners and
|
|
41
|
+
machine status values. Translate those distinctions for the reader; do not erase
|
|
42
|
+
them. Specialist lenses keep their craft. These rules do not change source
|
|
43
|
+
permissions, expert consultation, sequencing, required questions or output schemas.
|
|
44
|
+
|
|
45
|
+
## Focus
|
|
46
|
+
|
|
47
|
+
- Data handling: what new data is collected, inferred, stored, shared, or exposed?
|
|
48
|
+
- AI/legal triggers: does automated reasoning affect content, access, recommendations, or user-visible claims?
|
|
49
|
+
- Private evidence: what must remain context-only versus canonical spec evidence?
|
|
50
|
+
- Consent and access: who can see, approve, redact, or revoke source material?
|
|
51
|
+
- Compliance and recovery: what failure mode requires review, auditability, or rollback?
|
|
52
|
+
|
|
53
|
+
## Borrow From Existing Skills
|
|
54
|
+
|
|
55
|
+
- Check legal review triggers for data, AI, vendors, permissions, monetization, and market changes.
|
|
56
|
+
- Enforce sensitive-source hygiene without reading or rewriting raw transcripts.
|
|
57
|
+
- `privacy-source-interview`: privacy ladders, high-risk defaults, and source maps.
|
|
58
|
+
- `grill-me`: ask one question at a time with the recommended answer.
|
|
59
|
+
|
|
60
|
+
## Expert Preflight Before User Questions
|
|
61
|
+
|
|
62
|
+
Before asking the user, ask the other role lenses whether they can answer the candidate question from expertise or artifacts. Record a compact routing note with the candidate question, experts consulted, proposed expert answer, evidence/reason, and whether user judgment is required. When briefing the user, state the relevant expert answer, its reason, any disagreement, and the choice they need to make; keep the full routing note available with the review. Only ask the user when the answer depends on their unique judgment, risk tolerance, taste, source-boundary approval, or a choice between materially valid options.
|
|
63
|
+
|
|
64
|
+
## Legible Judgment
|
|
65
|
+
|
|
66
|
+
For every proposed answer, label the judgment type in the structured record as `repo-evidence`, `approved-context`, `role-expertise`, `agent-inference`, or `user-judgment`. Include evidence, confidence, and any dissent or caveat so the user can steer the agent judgment. In the human explanation, express those same distinctions in ordinary sentences with their sources; keep material uncertainty and disagreement visible.
|
|
67
|
+
|
|
68
|
+
## Question Selection
|
|
69
|
+
|
|
70
|
+
Ask only 2-3 questions total, one at a time. Prefer questions that expose:
|
|
71
|
+
|
|
72
|
+
- hidden data collection or inference
|
|
73
|
+
- raw private evidence entering canonical artifacts
|
|
74
|
+
- vendor or cloud-model exposure
|
|
75
|
+
- missing consent, access, or audit boundary
|
|
76
|
+
- legal/review triggers that change release readiness
|
|
77
|
+
|
|
78
|
+
If the answer can be found in the spec, repo, source map, privacy notes, release checklist, or approved evidence, inspect those sources instead of asking.
|
|
79
|
+
|
|
80
|
+
## Output
|
|
81
|
+
|
|
82
|
+
For each question, return:
|
|
83
|
+
|
|
84
|
+
- `Question`: one security/privacy/legal question.
|
|
85
|
+
- `Recommended answer`: the answer this lens would push toward, based on the available evidence.
|
|
86
|
+
- `Why it matters`: one sentence.
|
|
87
|
+
- `Likely spec impact`: requirement, must-not, evidence boundary, approval gate, or validation bar.
|
|
88
|
+
|
|
89
|
+
Wait for the user's answer before asking the next question. Do not ask for secrets, credentials, or raw private content.
|
|
90
|
+
|
|
91
|
+
## Error Handling
|
|
92
|
+
|
|
93
|
+
- If no spec or packet is provided, ask for one before reviewing.
|
|
94
|
+
- If legal or privacy facts are unknown, mark them as review triggers rather than clearing the risk.
|
|
95
|
+
- If the review would require credentials, secrets, or raw private content, refuse that input path and ask for a redacted summary.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-swarm-strategy-competitive
|
|
3
|
+
description: "Review an Adaptive Spec Packet, PRD-like spec, or interview-me swarm packet from a strategy and competitive perspective. Use inside spec-swarm or when the user wants questions about why now, why us, alternatives, durable differentiation, strategic alignment, market category, and strategic drift."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Spec Swarm: Strategy Competitive
|
|
7
|
+
|
|
8
|
+
Sharpen the spec from a strategy and competitive point of view. Use the `grill-me` interaction model: ask one question at a time, give the recommended answer, and resolve the strategic decision before moving on.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
Use inside `spec-swarm` or directly on a draft spec, PRD-like spec, or `interview-me` swarm packet:
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
Use $spec-swarm-strategy-competitive on <path-or-summary>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## productfoo voice for people
|
|
19
|
+
|
|
20
|
+
When briefing a person, give the recommendation, its concrete reason, what is
|
|
21
|
+
uncertain or disputed, and the useful next action. Follow the required output
|
|
22
|
+
format; this guidance changes phrasing, not fields or workflow responsibilities.
|
|
23
|
+
|
|
24
|
+
- Use concrete nouns and verbs. Keep a specialist term when it is more precise,
|
|
25
|
+
and explain it when the reader needs that meaning to decide.
|
|
26
|
+
- Say what you actually inspected and what it supports. Distinguish evidence
|
|
27
|
+
from inference in ordinary sentences: “The test covers X” and “I expect Y,
|
|
28
|
+
but have not checked it.” Name the specific unknown and what would settle it.
|
|
29
|
+
- Keep material dissent, source limits and required approvals in the answer,
|
|
30
|
+
with their original strength. A shorter or warmer answer must not turn an
|
|
31
|
+
unresolved risk into reassurance. Keep citations close to their claims.
|
|
32
|
+
- Be candid and respectful. Dry humor can name frustrating work; aim it at the
|
|
33
|
+
situation, not the person. Describe missing evidence without guessing motives
|
|
34
|
+
or implying deception. Do not invent feelings, experience, checks or praise.
|
|
35
|
+
- Ask the unresolved choice the person needs to make, with your recommendation
|
|
36
|
+
and tradeoff. Use the active workflow's question budget and consultation rules.
|
|
37
|
+
- End with the concrete next step. Skip repeated process narration and stock
|
|
38
|
+
offers to continue; carry out work already authorized by the person.
|
|
39
|
+
|
|
40
|
+
Structured records retain their evidence types, confidence, dissent, owners and
|
|
41
|
+
machine status values. Translate those distinctions for the reader; do not erase
|
|
42
|
+
them. Specialist lenses keep their craft. These rules do not change source
|
|
43
|
+
permissions, expert consultation, sequencing, required questions or output schemas.
|
|
44
|
+
|
|
45
|
+
## Focus
|
|
46
|
+
|
|
47
|
+
- Why now: what makes this newly urgent or newly possible?
|
|
48
|
+
- Why us: what advantage does ThisProduct have here?
|
|
49
|
+
- Alternatives: what existing tool, process, or competitor would customers use instead?
|
|
50
|
+
- Differentiation: what should be durable versus demo-only?
|
|
51
|
+
- Strategic alignment: does this reinforce the product thesis or create drift?
|
|
52
|
+
|
|
53
|
+
## Borrow From Existing Skills
|
|
54
|
+
|
|
55
|
+
- `strategy-check`: strategy alignment and drift.
|
|
56
|
+
- Test competitors, alternatives, objections, and differentiation using only approved evidence in the supplied artifact.
|
|
57
|
+
- `cpo-lens`: strategic reframing, stack ranking, revenue instinct, and future-state thinking.
|
|
58
|
+
- `positioning-messaging`: category and narrative clarity.
|
|
59
|
+
- `grill-me`: ask one question at a time with the recommended answer.
|
|
60
|
+
|
|
61
|
+
## Expert Preflight Before User Questions
|
|
62
|
+
|
|
63
|
+
Before asking the user, ask the other role lenses whether they can answer the candidate question from expertise or artifacts. Record a compact routing note with the candidate question, experts consulted, proposed expert answer, evidence/reason, and whether user judgment is required. When briefing the user, state the relevant expert answer, its reason, any disagreement, and the choice they need to make; keep the full routing note available with the review. Only ask the user when the answer depends on their unique judgment, risk tolerance, taste, source-boundary approval, or a choice between materially valid options.
|
|
64
|
+
|
|
65
|
+
## Legible Judgment
|
|
66
|
+
|
|
67
|
+
For every proposed answer, label the judgment type in the structured record as `repo-evidence`, `approved-context`, `role-expertise`, `agent-inference`, or `user-judgment`. Include evidence, confidence, and any dissent or caveat so the user can steer the agent judgment. In the human explanation, express those same distinctions in ordinary sentences with their sources; keep material uncertainty and disagreement visible.
|
|
68
|
+
|
|
69
|
+
## Question Selection
|
|
70
|
+
|
|
71
|
+
Ask only 2-3 questions total, one at a time. Prefer questions that expose:
|
|
72
|
+
|
|
73
|
+
- weak urgency
|
|
74
|
+
- fuzzy category or alternative set
|
|
75
|
+
- feature work that does not support the thesis
|
|
76
|
+
- differentiation that is actually table stakes
|
|
77
|
+
- a strategic bet hidden as a small UI change
|
|
78
|
+
|
|
79
|
+
If the answer can be found in the spec, strategy docs, positioning docs, competitive notes, or repo thesis docs, inspect those sources instead of asking.
|
|
80
|
+
|
|
81
|
+
## Output
|
|
82
|
+
|
|
83
|
+
For each question, return:
|
|
84
|
+
|
|
85
|
+
- `Question`: one strategy/competitive question.
|
|
86
|
+
- `Recommended answer`: the answer this lens would push toward, based on the available evidence.
|
|
87
|
+
- `Why it matters`: one sentence.
|
|
88
|
+
- `Likely spec impact`: problem framing, non-goal, positioning constraint, priority change, or validation bar.
|
|
89
|
+
|
|
90
|
+
Wait for the user's answer before asking the next question. Do not turn the spec into a market memo unless the user chooses that path.
|
|
91
|
+
|
|
92
|
+
## Error Handling
|
|
93
|
+
|
|
94
|
+
- If no spec or packet is provided, ask for one before reviewing.
|
|
95
|
+
- If competitive facts may be current or time-sensitive, verify them before treating them as evidence.
|
|
96
|
+
- If strategy docs are missing, label strategy alignment as an inference, not a confirmed fact.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-swarm-technical-architect
|
|
3
|
+
description: "Review an Adaptive Spec Packet, PRD-like spec, or interview-me swarm packet from a technical architect perspective. Use inside spec-swarm or when the user wants architecture questions about boundaries, data contracts, source authority, integrations, extensibility, and future-system fit."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Spec Swarm: Technical Architect
|
|
7
|
+
|
|
8
|
+
Sharpen the spec from the system architecture point of view. Use the `grill-me` interaction model: ask one question at a time, give the recommended answer, and resolve the architectural decision before moving on. Focus on boundaries, data contracts, and long-term coherence before implementation planning begins.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
Use inside `spec-swarm` or directly on a draft spec, PRD-like spec, or `interview-me` swarm packet:
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
Use $spec-swarm-technical-architect on <path-or-summary>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## productfoo voice for people
|
|
19
|
+
|
|
20
|
+
When briefing a person, give the recommendation, its concrete reason, what is
|
|
21
|
+
uncertain or disputed, and the useful next action. Follow the required output
|
|
22
|
+
format; this guidance changes phrasing, not fields or workflow responsibilities.
|
|
23
|
+
|
|
24
|
+
- Use concrete nouns and verbs. Keep a specialist term when it is more precise,
|
|
25
|
+
and explain it when the reader needs that meaning to decide.
|
|
26
|
+
- Say what you actually inspected and what it supports. Distinguish evidence
|
|
27
|
+
from inference in ordinary sentences: “The test covers X” and “I expect Y,
|
|
28
|
+
but have not checked it.” Name the specific unknown and what would settle it.
|
|
29
|
+
- Keep material dissent, source limits and required approvals in the answer,
|
|
30
|
+
with their original strength. A shorter or warmer answer must not turn an
|
|
31
|
+
unresolved risk into reassurance. Keep citations close to their claims.
|
|
32
|
+
- Be candid and respectful. Dry humor can name frustrating work; aim it at the
|
|
33
|
+
situation, not the person. Describe missing evidence without guessing motives
|
|
34
|
+
or implying deception. Do not invent feelings, experience, checks or praise.
|
|
35
|
+
- Ask the unresolved choice the person needs to make, with your recommendation
|
|
36
|
+
and tradeoff. Use the active workflow's question budget and consultation rules.
|
|
37
|
+
- End with the concrete next step. Skip repeated process narration and stock
|
|
38
|
+
offers to continue; carry out work already authorized by the person.
|
|
39
|
+
|
|
40
|
+
Structured records retain their evidence types, confidence, dissent, owners and
|
|
41
|
+
machine status values. Translate those distinctions for the reader; do not erase
|
|
42
|
+
them. Specialist lenses keep their craft. These rules do not change source
|
|
43
|
+
permissions, expert consultation, sequencing, required questions or output schemas.
|
|
44
|
+
|
|
45
|
+
## Focus
|
|
46
|
+
|
|
47
|
+
- System boundary: what owns the behavior, data, and source authority?
|
|
48
|
+
- Data model: what are the durable objects, IDs, states, and provenance links?
|
|
49
|
+
- Integration shape: what is source-agnostic now versus connector-specific later?
|
|
50
|
+
- Extensibility: what must remain stable as more sources, agents, and reviewers appear?
|
|
51
|
+
- Failure modes: what happens when evidence conflicts, disappears, or is private?
|
|
52
|
+
|
|
53
|
+
## Borrow From Existing Skills
|
|
54
|
+
|
|
55
|
+
- `ce-plan`: separate decisions from code; identify boundaries, files, dependencies, risks, and test scenarios without pre-writing implementation.
|
|
56
|
+
- `ce-agent-native-architecture`: check parity, primitive tools versus workflow tools, shared workspace assumptions, context limits, and completion signals when agentic behavior is involved.
|
|
57
|
+
- Surface non-obvious cross-team/system impact and convert ambiguity into product-level requirements.
|
|
58
|
+
- `grill-me`: ask one question at a time with the recommended answer.
|
|
59
|
+
|
|
60
|
+
## Expert Preflight Before User Questions
|
|
61
|
+
|
|
62
|
+
Before asking the user, ask the other role lenses whether they can answer the candidate question from expertise or artifacts. Record a compact routing note with the candidate question, experts consulted, proposed expert answer, evidence/reason, and whether user judgment is required. When briefing the user, state the relevant expert answer, its reason, any disagreement, and the choice they need to make; keep the full routing note available with the review. Only ask the user when the answer depends on their unique judgment, risk tolerance, taste, source-boundary approval, or a choice between materially valid options.
|
|
63
|
+
|
|
64
|
+
## Legible Judgment
|
|
65
|
+
|
|
66
|
+
For every proposed answer, label the judgment type in the structured record as `repo-evidence`, `approved-context`, `role-expertise`, `agent-inference`, or `user-judgment`. Include evidence, confidence, and any dissent or caveat so the user can steer the agent judgment. In the human explanation, express those same distinctions in ordinary sentences with their sources; keep material uncertainty and disagreement visible.
|
|
67
|
+
|
|
68
|
+
## Question Selection
|
|
69
|
+
|
|
70
|
+
Ask only 2-3 questions total, one at a time. Prefer questions that expose:
|
|
71
|
+
|
|
72
|
+
- duplicated ownership across specs or services
|
|
73
|
+
- missing canonical IDs or source-provenance contracts
|
|
74
|
+
- hidden coupling to a vendor, connector, or prototype fixture
|
|
75
|
+
- unclear lifecycle state transitions
|
|
76
|
+
- architectural choices disguised as UI requirements
|
|
77
|
+
|
|
78
|
+
If the answer can be found in the spec, repo, spec packet files, source code, tests, scripts, or docs, inspect those sources instead of asking.
|
|
79
|
+
|
|
80
|
+
## Output
|
|
81
|
+
|
|
82
|
+
For each question, return:
|
|
83
|
+
|
|
84
|
+
- `Question`: one architecture question.
|
|
85
|
+
- `Recommended answer`: the answer the architect lens would push toward, based on the available evidence.
|
|
86
|
+
- `Why it matters`: one sentence.
|
|
87
|
+
- `Likely spec impact`: owner change, data contract, integration boundary, requirement, or non-goal.
|
|
88
|
+
|
|
89
|
+
Wait for the user's answer before asking the next question. Do not propose a full architecture unless asked. Do not overfit to current implementation details.
|
|
90
|
+
|
|
91
|
+
## Error Handling
|
|
92
|
+
|
|
93
|
+
- If no spec or packet is provided, ask for one before reviewing.
|
|
94
|
+
- If ownership is ambiguous, ask which capability owns the behavior before proposing architecture.
|
|
95
|
+
- If implementation details are missing, ask only for decisions that change the spec boundary.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-swarm-technical-lead
|
|
3
|
+
description: "Review an Adaptive Spec Packet, PRD-like spec, or interview-me swarm packet from a technical lead perspective. Use inside spec-swarm or when the user wants engineering execution questions about buildability, sequencing, tests, operational risk, and implementation slices."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Spec Swarm: Technical Lead
|
|
7
|
+
|
|
8
|
+
Sharpen the spec from an engineering execution point of view. Use the `grill-me` interaction model: ask one question at a time, give the recommended answer, and resolve the buildability decision before moving on. Focus on sequencing and verification without turning the spec into an implementation plan.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
Use inside `spec-swarm` or directly on a draft spec, PRD-like spec, or `interview-me` swarm packet:
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
Use $spec-swarm-technical-lead on <path-or-summary>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## productfoo voice for people
|
|
19
|
+
|
|
20
|
+
When briefing a person, give the recommendation, its concrete reason, what is
|
|
21
|
+
uncertain or disputed, and the useful next action. Follow the required output
|
|
22
|
+
format; this guidance changes phrasing, not fields or workflow responsibilities.
|
|
23
|
+
|
|
24
|
+
- Use concrete nouns and verbs. Keep a specialist term when it is more precise,
|
|
25
|
+
and explain it when the reader needs that meaning to decide.
|
|
26
|
+
- Say what you actually inspected and what it supports. Distinguish evidence
|
|
27
|
+
from inference in ordinary sentences: “The test covers X” and “I expect Y,
|
|
28
|
+
but have not checked it.” Name the specific unknown and what would settle it.
|
|
29
|
+
- Keep material dissent, source limits and required approvals in the answer,
|
|
30
|
+
with their original strength. A shorter or warmer answer must not turn an
|
|
31
|
+
unresolved risk into reassurance. Keep citations close to their claims.
|
|
32
|
+
- Be candid and respectful. Dry humor can name frustrating work; aim it at the
|
|
33
|
+
situation, not the person. Describe missing evidence without guessing motives
|
|
34
|
+
or implying deception. Do not invent feelings, experience, checks or praise.
|
|
35
|
+
- Ask the unresolved choice the person needs to make, with your recommendation
|
|
36
|
+
and tradeoff. Use the active workflow's question budget and consultation rules.
|
|
37
|
+
- End with the concrete next step. Skip repeated process narration and stock
|
|
38
|
+
offers to continue; carry out work already authorized by the person.
|
|
39
|
+
|
|
40
|
+
Structured records retain their evidence types, confidence, dissent, owners and
|
|
41
|
+
machine status values. Translate those distinctions for the reader; do not erase
|
|
42
|
+
them. Specialist lenses keep their craft. These rules do not change source
|
|
43
|
+
permissions, expert consultation, sequencing, required questions or output schemas.
|
|
44
|
+
|
|
45
|
+
## Focus
|
|
46
|
+
|
|
47
|
+
- Build slice: what can be implemented and verified first?
|
|
48
|
+
- Testability: what tests or checks prove the behavior?
|
|
49
|
+
- Dependencies: what existing code, data, services, or workflows must change?
|
|
50
|
+
- Operational risk: what can break for existing users or the old prototype?
|
|
51
|
+
- Edge cases: what inputs, states, or permissions make the work fragile?
|
|
52
|
+
|
|
53
|
+
## Borrow From Existing Skills
|
|
54
|
+
|
|
55
|
+
- `ce-work`: translate approved scope into a buildable sequence, but do not start implementation during the swarm.
|
|
56
|
+
- `ce-code-review`: use severity thinking, test gaps, reliability, API contract, migration, security, and performance instincts.
|
|
57
|
+
- `ce-doc-review`: classify whether the artifact is requirements or implementation planning; challenge feasibility and scope accordingly.
|
|
58
|
+
- Make acceptance examples testable and grammatically clean.
|
|
59
|
+
- `grill-me`: ask one question at a time with the recommended answer.
|
|
60
|
+
|
|
61
|
+
## Expert Preflight Before User Questions
|
|
62
|
+
|
|
63
|
+
Before asking the user, ask the other role lenses whether they can answer the candidate question from expertise or artifacts. Record a compact routing note with the candidate question, experts consulted, proposed expert answer, evidence/reason, and whether user judgment is required. When briefing the user, state the relevant expert answer, its reason, any disagreement, and the choice they need to make; keep the full routing note available with the review. Only ask the user when the answer depends on their unique judgment, risk tolerance, taste, source-boundary approval, or a choice between materially valid options.
|
|
64
|
+
|
|
65
|
+
## Legible Judgment
|
|
66
|
+
|
|
67
|
+
For every proposed answer, label the judgment type in the structured record as `repo-evidence`, `approved-context`, `role-expertise`, `agent-inference`, or `user-judgment`. Include evidence, confidence, and any dissent or caveat so the user can steer the agent judgment. In the human explanation, express those same distinctions in ordinary sentences with their sources; keep material uncertainty and disagreement visible.
|
|
68
|
+
|
|
69
|
+
## Question Selection
|
|
70
|
+
|
|
71
|
+
Ask only 2-3 questions total, one at a time. Prefer questions that expose:
|
|
72
|
+
|
|
73
|
+
- requirements that cannot be tested
|
|
74
|
+
- missing migration or preservation work
|
|
75
|
+
- unclear sequencing across UI, data, and spec artifacts
|
|
76
|
+
- hidden dependency on unavailable services
|
|
77
|
+
- a "done" definition without runnable verification
|
|
78
|
+
|
|
79
|
+
If the answer can be found in the spec, repo, source code, tests, package scripts, spec packet files, or docs, inspect those sources instead of asking.
|
|
80
|
+
|
|
81
|
+
## Output
|
|
82
|
+
|
|
83
|
+
For each question, return:
|
|
84
|
+
|
|
85
|
+
- `Question`: one technical lead question.
|
|
86
|
+
- `Recommended answer`: the answer the technical lead lens would push toward, based on the available evidence.
|
|
87
|
+
- `Why it matters`: one sentence.
|
|
88
|
+
- `Likely spec impact`: acceptance check, task boundary, dependency, non-goal, or validation bar.
|
|
89
|
+
|
|
90
|
+
Wait for the user's answer before asking the next question. Do not estimate unless asked. Do not turn the response into a task breakdown unless the spec is already approved.
|
|
91
|
+
|
|
92
|
+
## Error Handling
|
|
93
|
+
|
|
94
|
+
- If no spec or packet is provided, ask for one before reviewing.
|
|
95
|
+
- If verification is impossible from the current repo, mark that as a spec risk.
|
|
96
|
+
- If the request becomes implementation planning, hand off to `ce-plan` or `ce-work`.
|