@geraldmaron/construct 1.0.16 → 1.0.17
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/README.md +4 -1
- package/bin/construct +236 -21
- package/bin/construct-postinstall.mjs +17 -2
- package/lib/cli-commands.mjs +65 -13
- package/lib/embedded-contract/audit.mjs +52 -0
- package/lib/embedded-contract/capability.mjs +179 -0
- package/lib/embedded-contract/contract-version.mjs +39 -0
- package/lib/embedded-contract/envelope.mjs +70 -0
- package/lib/embedded-contract/index.mjs +71 -0
- package/lib/embedded-contract/ingest.mjs +77 -0
- package/lib/embedded-contract/model-resolve.mjs +186 -0
- package/lib/embedded-contract/redaction.mjs +91 -0
- package/lib/embedded-contract/role-facts.mjs +66 -0
- package/lib/embedded-contract/triage.mjs +134 -0
- package/lib/embedded-contract/workflow-defs.mjs +125 -0
- package/lib/embedded-contract/workflow-invoke.mjs +218 -0
- package/lib/hooks/config-protection.mjs +12 -5
- package/lib/init-unified.mjs +36 -26
- package/lib/intake/classify.mjs +6 -0
- package/lib/intake/tables/rnd.mjs +33 -0
- package/lib/mcp/server.mjs +69 -0
- package/lib/mcp/tools/embedded-contract.mjs +77 -0
- package/lib/model-router.mjs +40 -0
- package/lib/op-log.mjs +61 -0
- package/lib/roles/catalog.mjs +26 -95
- package/lib/service-manager.mjs +33 -11
- package/lib/setup.mjs +21 -3
- package/lib/validators/skills.mjs +21 -0
- package/package.json +9 -3
- package/scripts/sync-specialists.mjs +12 -3
- package/skills/ai/agent-dev.md +2 -0
- package/skills/ai/llm-security.md +2 -0
- package/skills/ai/ml-ops.md +2 -0
- package/skills/ai/orchestration-workflow.md +2 -0
- package/skills/ai/prompt-and-eval.md +2 -0
- package/skills/ai/prompt-optimizer.md +2 -0
- package/skills/ai/rag-system.md +2 -0
- package/skills/ai/trace-triage.md +36 -0
- package/skills/architecture/api-design.md +2 -0
- package/skills/architecture/caching.md +2 -0
- package/skills/architecture/cloud-native.md +2 -0
- package/skills/architecture/message-queue.md +2 -0
- package/skills/architecture/security-arch.md +2 -0
- package/skills/compliance/ai-disclosure.md +2 -0
- package/skills/compliance/data-privacy.md +2 -0
- package/skills/compliance/license-audit.md +2 -0
- package/skills/compliance/regulatory-review.md +2 -0
- package/skills/development/cpp.md +2 -0
- package/skills/development/go.md +2 -0
- package/skills/development/java.md +2 -0
- package/skills/development/kotlin.md +2 -0
- package/skills/development/mobile-crossplatform.md +2 -0
- package/skills/development/python.md +2 -0
- package/skills/development/rust.md +2 -0
- package/skills/development/shell.md +2 -0
- package/skills/development/swift.md +2 -0
- package/skills/development/typescript.md +2 -0
- package/skills/devops/ci-cd.md +2 -0
- package/skills/devops/containerization.md +2 -0
- package/skills/devops/cost-optimization.md +2 -0
- package/skills/devops/data-engineering.md +2 -0
- package/skills/devops/database.md +2 -0
- package/skills/devops/dependency-management.md +2 -0
- package/skills/devops/devsecops.md +2 -0
- package/skills/devops/git-workflow.md +2 -0
- package/skills/devops/incident-response.md +2 -0
- package/skills/devops/monorepo.md +2 -0
- package/skills/devops/observability.md +2 -0
- package/skills/devops/performance.md +2 -0
- package/skills/devops/testing.md +2 -0
- package/skills/docs/adr-workflow.md +2 -0
- package/skills/docs/backlog-proposal-workflow.md +2 -0
- package/skills/docs/customer-profile-workflow.md +2 -0
- package/skills/docs/document-ingest-workflow.md +2 -0
- package/skills/docs/evidence-ingest-workflow.md +2 -0
- package/skills/docs/init-docs.md +2 -0
- package/skills/docs/init-project.md +2 -0
- package/skills/docs/memo-and-decision-capture.md +45 -0
- package/skills/docs/prd-workflow.md +2 -0
- package/skills/docs/prfaq-workflow.md +2 -0
- package/skills/docs/product-intelligence-review.md +2 -0
- package/skills/docs/product-intelligence-workflow.md +2 -0
- package/skills/docs/product-signal-workflow.md +2 -0
- package/skills/docs/research-workflow.md +2 -0
- package/skills/docs/runbook-workflow.md +2 -0
- package/skills/docs/strategy-workflow.md +2 -0
- package/skills/docs/transcript-synthesis.md +43 -0
- package/skills/exploration/dependency-graph-reading.md +2 -0
- package/skills/exploration/repo-map.md +2 -0
- package/skills/exploration/tracer-bullet-method.md +2 -0
- package/skills/exploration/unknown-codebase-onboarding.md +2 -0
- package/skills/frameworks/django.md +2 -0
- package/skills/frameworks/nextjs.md +2 -0
- package/skills/frameworks/react.md +2 -0
- package/skills/frameworks/spring-boot.md +2 -0
- package/skills/frontend-design/accessibility.md +2 -0
- package/skills/frontend-design/component-patterns.md +2 -0
- package/skills/frontend-design/engineering.md +2 -0
- package/skills/frontend-design/screen-reader-testing.md +34 -0
- package/skills/frontend-design/state-management.md +2 -0
- package/skills/frontend-design/ui-aesthetics.md +2 -0
- package/skills/frontend-design/ux-principles.md +2 -0
- package/skills/operating/change-management.md +2 -0
- package/skills/operating/incident-response.md +2 -0
- package/skills/operating/oncall-rotation.md +2 -0
- package/skills/operating/orchestration-reference.md +2 -0
- package/skills/operating/raw-data-structuring.md +44 -0
- package/skills/operating/unstructured-triage.md +45 -0
- package/skills/quality-gates/premortem.md +37 -0
- package/skills/quality-gates/review-work.md +2 -0
- package/skills/quality-gates/verify-change.md +2 -0
- package/skills/quality-gates/verify-module.md +2 -0
- package/skills/quality-gates/verify-quality.md +2 -0
- package/skills/quality-gates/verify-security.md +2 -0
- package/skills/roles/architect.ai-systems.md +2 -0
- package/skills/roles/architect.data.md +2 -0
- package/skills/roles/architect.enterprise.md +2 -0
- package/skills/roles/architect.integration.md +2 -0
- package/skills/roles/architect.md +2 -0
- package/skills/roles/architect.platform.md +2 -0
- package/skills/roles/data-analyst.experiment.md +2 -0
- package/skills/roles/data-analyst.md +2 -0
- package/skills/roles/data-analyst.product-intelligence.md +2 -0
- package/skills/roles/data-analyst.product.md +2 -0
- package/skills/roles/data-analyst.telemetry.md +2 -0
- package/skills/roles/data-engineer.pipeline.md +2 -0
- package/skills/roles/data-engineer.vector-retrieval.md +2 -0
- package/skills/roles/data-engineer.warehouse.md +2 -0
- package/skills/roles/debugger.md +2 -0
- package/skills/roles/designer.accessibility.md +2 -0
- package/skills/roles/designer.md +2 -0
- package/skills/roles/engineer.ai.md +2 -0
- package/skills/roles/engineer.data.md +2 -0
- package/skills/roles/engineer.md +2 -0
- package/skills/roles/engineer.platform.md +2 -0
- package/skills/roles/operator.docs.md +2 -0
- package/skills/roles/operator.md +2 -0
- package/skills/roles/operator.release.md +2 -0
- package/skills/roles/operator.sre.md +2 -0
- package/skills/roles/orchestrator.md +2 -0
- package/skills/roles/product-manager.ai-product.md +2 -0
- package/skills/roles/product-manager.business-strategy.md +2 -0
- package/skills/roles/product-manager.enterprise.md +2 -0
- package/skills/roles/product-manager.growth.md +2 -0
- package/skills/roles/product-manager.md +2 -0
- package/skills/roles/product-manager.platform.md +2 -0
- package/skills/roles/product-manager.product.md +2 -0
- package/skills/roles/qa.ai-eval.md +2 -0
- package/skills/roles/qa.api-contract.md +2 -0
- package/skills/roles/qa.data-pipeline.md +2 -0
- package/skills/roles/qa.md +2 -0
- package/skills/roles/qa.test-automation.md +2 -0
- package/skills/roles/qa.web-ui.md +2 -0
- package/skills/roles/researcher.explorer.md +2 -0
- package/skills/roles/researcher.md +2 -0
- package/skills/roles/researcher.ux.md +2 -0
- package/skills/roles/reviewer.devil-advocate.md +2 -0
- package/skills/roles/reviewer.evaluator.md +2 -0
- package/skills/roles/reviewer.md +2 -0
- package/skills/roles/reviewer.trace.md +2 -0
- package/skills/roles/security.ai.md +2 -0
- package/skills/roles/security.appsec.md +2 -0
- package/skills/roles/security.cloud.md +2 -0
- package/skills/roles/security.legal-compliance.md +2 -0
- package/skills/roles/security.md +2 -0
- package/skills/roles/security.privacy.md +2 -0
- package/skills/roles/security.supply-chain.md +2 -0
- package/skills/security/blue-team.md +2 -0
- package/skills/security/code-audit.md +2 -0
- package/skills/security/pentest.md +2 -0
- package/skills/security/red-team.md +2 -0
- package/skills/security/threat-intel.md +2 -0
- package/skills/security/vuln-research.md +2 -0
- package/skills/strategy/competitive-landscape.md +2 -0
- package/skills/strategy/jobs-to-be-done.md +38 -0
- package/skills/strategy/market-research-methods.md +2 -0
- package/skills/strategy/narrative-arc.md +2 -0
- package/skills/strategy/pricing-positioning.md +2 -0
- package/skills/utility/clean-code.md +2 -0
- package/specialists/prompts/cx-engineer.md +1 -1
- package/specialists/registry.json +18 -9
- package/specialists/role-manifests.json +1 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: strategy-competitive-landscape
|
|
3
3
|
description: Use when the team needs a structured read on market positioning before committing direction.
|
|
4
|
+
inputs: [competitor-data, market-signals]
|
|
5
|
+
artifactType: competitive-analysis
|
|
4
6
|
---
|
|
5
7
|
# Competitive Landscape Analysis
|
|
6
8
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: strategy-jobs-to-be-done
|
|
3
|
+
description: "Use when: user research needs to uncover the job a user is hiring a product to do — the underlying progress they seek — rather than feature requests or stated preferences."
|
|
4
|
+
inputs: [user-signals-or-interviews]
|
|
5
|
+
artifactType: jtbd-summary
|
|
6
|
+
---
|
|
7
|
+
# Jobs To Be Done
|
|
8
|
+
|
|
9
|
+
Use this skill when user research needs to surface the underlying job a user is trying to get done, not the features they ask for.
|
|
10
|
+
|
|
11
|
+
Users describe solutions ("add a dark mode"); the job is the progress they're trying to make and the context that triggers it. Building to stated features without the job produces local optima nobody hires.
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
1. **Anchor on a real episode**, not a hypothetical. "Tell me about the last time you…" — recent, specific, remembered.
|
|
16
|
+
2. **Trace the timeline**: the trigger (what changed that made them act), the struggle with the current approach, what they tried, and the outcome they were after.
|
|
17
|
+
3. **Separate the job from the solution.** "I want X feature" → ask "what would X let you do that you can't now?" Keep climbing until you reach a stable goal that doesn't reference your product.
|
|
18
|
+
4. **Capture the forces**: push (problems with the status quo), pull (attraction of a new way), and anxieties/habits that hold them back. Adoption is decided by these four forces.
|
|
19
|
+
5. **Watch for non-consumption**: people who have the job but use nothing, or a manual workaround — often the clearest signal of the job.
|
|
20
|
+
6. **State the job** as `When <situation>, I want to <motivation>, so I can <expected outcome>` — sourced to the episodes, not invented.
|
|
21
|
+
|
|
22
|
+
## Output shape
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
## Job statement(s)
|
|
26
|
+
- When <situation>, I want to <motivation>, so I can <outcome> — evidence: <episode refs>
|
|
27
|
+
|
|
28
|
+
## Forces
|
|
29
|
+
- push: … · pull: … · anxiety: … · habit: …
|
|
30
|
+
|
|
31
|
+
## Non-consumption / workarounds observed
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Verification bar
|
|
35
|
+
|
|
36
|
+
- Each job statement traces to a specific recounted episode, not a generalization or an assumption about "users".
|
|
37
|
+
- Solution language ("add X") is climbed back to the underlying job, not recorded as the job.
|
|
38
|
+
- Forces and non-consumption come from what was observed/said, labeled where inferred.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: strategy-market-research-methods
|
|
3
3
|
description: Use when the team needs to validate assumptions before committing resources, or when a decision is being made on vibes rather than signal.
|
|
4
|
+
inputs: [market-signals, user-signals]
|
|
5
|
+
artifactType: market-brief
|
|
4
6
|
---
|
|
5
7
|
# Market Research Methods
|
|
6
8
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: strategy-narrative-arc
|
|
3
3
|
description: Use when the argument must move people, not just inform them. Strategic narrative is the difference between a document that gets read and one that changes what people do.
|
|
4
|
+
inputs: [market-signals, user-signals]
|
|
5
|
+
artifactType: positioning
|
|
4
6
|
---
|
|
5
7
|
# Strategic Narrative Construction
|
|
6
8
|
|
|
@@ -44,7 +44,7 @@ Construct may dispatch you in response to a `handoff.received`, `incident.handof
|
|
|
44
44
|
**Fence (declared in specialists/role-manifests.json → engineer):**
|
|
45
45
|
- Allowed paths: `lib/**`, `bin/**`, `src/**`, `app/**`, `tests/**`, `docs/**`
|
|
46
46
|
- Allowed bd labels: `bug`, `feature`, `task`, `engineering`, `fix`
|
|
47
|
-
- Approval required: any commit, any push, any edit to protected files (`specialists/registry.json`, `
|
|
47
|
+
- Approval required: any commit, any push, any edit to protected files (`specialists/registry.json`, `lib/setup.mjs`, `claude/settings.template.json`)
|
|
48
48
|
|
|
49
49
|
You may edit production code, write tests, and run verification freely inside your fence. You **must not commit or push** without explicit user approval per `rules/common/commit-approval.md`. Stage edits, run verification, and stop.
|
|
50
50
|
|
|
@@ -50,7 +50,8 @@
|
|
|
50
50
|
"skills": [
|
|
51
51
|
"ai/orchestration-workflow",
|
|
52
52
|
"operating/orchestration-reference",
|
|
53
|
-
"operating/change-management"
|
|
53
|
+
"operating/change-management",
|
|
54
|
+
"operating/unstructured-triage"
|
|
54
55
|
],
|
|
55
56
|
"perspective": {
|
|
56
57
|
"bias": "Over-routing to cx-engineer, false simplicity, plans where every task runs in parallel",
|
|
@@ -200,7 +201,8 @@
|
|
|
200
201
|
]
|
|
201
202
|
},
|
|
202
203
|
"skills": [
|
|
203
|
-
"docs/research-workflow"
|
|
204
|
+
"docs/research-workflow",
|
|
205
|
+
"strategy/jobs-to-be-done"
|
|
204
206
|
],
|
|
205
207
|
"perspective": {
|
|
206
208
|
"bias": "Ideal-user personas, invisible friction, 'users will figure it out'",
|
|
@@ -291,7 +293,8 @@
|
|
|
291
293
|
},
|
|
292
294
|
"skills": [
|
|
293
295
|
"docs/research-workflow",
|
|
294
|
-
"devops/dependency-management"
|
|
296
|
+
"devops/dependency-management",
|
|
297
|
+
"docs/transcript-synthesis"
|
|
295
298
|
],
|
|
296
299
|
"perspective": {
|
|
297
300
|
"bias": "Undated sources, version-specific claims without citation, blog posts treated as authoritative",
|
|
@@ -389,7 +392,8 @@
|
|
|
389
392
|
},
|
|
390
393
|
"skills": [
|
|
391
394
|
"devops/observability",
|
|
392
|
-
"devops/database"
|
|
395
|
+
"devops/database",
|
|
396
|
+
"operating/raw-data-structuring"
|
|
393
397
|
],
|
|
394
398
|
"perspective": {
|
|
395
399
|
"bias": "Vanity metrics, post-hoc success definitions, averages that hide distributions",
|
|
@@ -645,7 +649,8 @@
|
|
|
645
649
|
]
|
|
646
650
|
},
|
|
647
651
|
"skills": [
|
|
648
|
-
"quality-gates/review-work"
|
|
652
|
+
"quality-gates/review-work",
|
|
653
|
+
"quality-gates/premortem"
|
|
649
654
|
],
|
|
650
655
|
"perspective": {
|
|
651
656
|
"bias": "Plans that are too elegant, 'unlikely' failure modes, scope drift with stable acceptance criteria",
|
|
@@ -1094,7 +1099,8 @@
|
|
|
1094
1099
|
"skills": [
|
|
1095
1100
|
"docs/adr-workflow",
|
|
1096
1101
|
"docs/runbook-workflow",
|
|
1097
|
-
"docs/init-docs"
|
|
1102
|
+
"docs/init-docs",
|
|
1103
|
+
"docs/memo-and-decision-capture"
|
|
1098
1104
|
],
|
|
1099
1105
|
"perspective": {
|
|
1100
1106
|
"bias": "Completed work with no context update, decisions 'everyone understands' but nobody wrote down",
|
|
@@ -1193,7 +1199,8 @@
|
|
|
1193
1199
|
]
|
|
1194
1200
|
},
|
|
1195
1201
|
"skills": [
|
|
1196
|
-
"frontend-design/accessibility"
|
|
1202
|
+
"frontend-design/accessibility",
|
|
1203
|
+
"frontend-design/screen-reader-testing"
|
|
1197
1204
|
],
|
|
1198
1205
|
"perspective": {
|
|
1199
1206
|
"bias": "ARIA added to pass audits, keyboard navigation never tested, contrast that 'looks fine' but fails the spec",
|
|
@@ -1280,7 +1287,8 @@
|
|
|
1280
1287
|
]
|
|
1281
1288
|
},
|
|
1282
1289
|
"skills": [
|
|
1283
|
-
"ai/prompt-optimizer"
|
|
1290
|
+
"ai/prompt-optimizer",
|
|
1291
|
+
"ai/trace-triage"
|
|
1284
1292
|
],
|
|
1285
1293
|
"perspective": {
|
|
1286
1294
|
"bias": "Stable-looking medians hiding variance, trace analyses looking only at successes, promotions on too few traces",
|
|
@@ -1322,7 +1330,8 @@
|
|
|
1322
1330
|
"skills": [
|
|
1323
1331
|
"devops/data-engineering",
|
|
1324
1332
|
"devops/database",
|
|
1325
|
-
"devops/observability"
|
|
1333
|
+
"devops/observability",
|
|
1334
|
+
"operating/raw-data-structuring"
|
|
1326
1335
|
],
|
|
1327
1336
|
"perspective": {
|
|
1328
1337
|
"bias": "Non-idempotent pipelines, unwritten data contracts, quality gates added after the first corruption incident",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"allowedPaths": ["lib/**", "bin/**", "src/**", "app/**", "tests/**", "docs/**"],
|
|
74
74
|
"allowedBdLabels": ["bug", "feature", "task", "engineering", "fix"],
|
|
75
75
|
"allowedCommands": ["bd create", "bd note", "bd update", "bd link", "bd label", "bd close", "node", "npm", "git status", "git diff", "git log"],
|
|
76
|
-
"approvalRequired": ["commit", "push", "edit:specialists/registry.json", "edit:
|
|
76
|
+
"approvalRequired": ["commit", "push", "edit:specialists/registry.json", "edit:lib/setup.mjs", "edit:claude/settings.template.json"]
|
|
77
77
|
},
|
|
78
78
|
"outputs": {
|
|
79
79
|
"bdLabels": ["engineering", "fix"],
|