@geraldmaron/construct 1.0.15 → 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 +19 -3
- package/bin/construct +376 -98
- package/bin/construct-postinstall.mjs +17 -2
- package/db/schema/010_cx_scores.sql +51 -0
- package/lib/cli-commands.mjs +333 -147
- package/lib/contracts/validate.mjs +20 -10
- package/lib/contracts/violation-log.mjs +27 -12
- 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/hooks/stop-notify.mjs +7 -0
- package/lib/init-unified.mjs +36 -26
- package/lib/install/first-invocation.mjs +5 -1
- package/lib/intake/classify.mjs +6 -0
- package/lib/intake/prepare.mjs +22 -4
- package/lib/intake/tables/rnd.mjs +33 -0
- package/lib/integrations/intake-integrations.mjs +28 -2
- package/lib/mcp/server.mjs +69 -0
- package/lib/mcp/tools/embedded-contract.mjs +77 -0
- package/lib/mcp/tools/telemetry.mjs +30 -0
- package/lib/model-router.mjs +40 -0
- package/lib/op-log.mjs +61 -0
- package/lib/orchestration-policy.mjs +15 -0
- package/lib/roles/catalog.mjs +26 -95
- package/lib/roles/gateway.mjs +30 -1
- package/lib/scheduler/index.mjs +24 -4
- package/lib/server/insights.mjs +12 -0
- package/lib/service-manager.mjs +33 -11
- package/lib/setup.mjs +73 -10
- package/lib/update.mjs +31 -3
- package/lib/upgrade.mjs +31 -4
- package/lib/validators/skills.mjs +21 -0
- package/package.json +9 -3
- package/personas/construct.md +2 -0
- package/platforms/claude/CLAUDE.md +43 -15
- package/scripts/sync-specialists.mjs +32 -5
- 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: exploration-repo-map
|
|
3
3
|
description: Use this skill when entering an unfamiliar codebase, doing deep investigation work, or producing a `.cx/codebase-map.md` artifact for future sessions.
|
|
4
|
+
inputs: [repo, codebase]
|
|
5
|
+
artifactType: repo-map
|
|
4
6
|
---
|
|
5
7
|
# Repo Exploration: Codebase Mapping Playbook
|
|
6
8
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: exploration-tracer-bullet-method
|
|
3
3
|
description: Use when beginning implementation in a new system, new integration, or new architectural layer. A tracer bullet is not a prototype; it is the thinnest possible complete path through the real system.
|
|
4
|
+
inputs: [codebase, system-design]
|
|
5
|
+
artifactType: guidance
|
|
4
6
|
---
|
|
5
7
|
# Tracer Bullet Method
|
|
6
8
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: exploration-unknown-codebase-onboarding
|
|
3
3
|
description: Use when entering an unfamiliar codebase for the first time, or when the task requires understanding a system you haven't touched before.
|
|
4
|
+
inputs: [codebase, repo]
|
|
5
|
+
artifactType: guidance
|
|
4
6
|
---
|
|
5
7
|
# Unknown Codebase Onboarding
|
|
6
8
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: frameworks-react
|
|
3
3
|
description: "By default, components are **Server Components**: they run on the server, have no state, and can fetch data directly. Add `'use client'` only when you need interactivity, browser APIs, or hooks. Use when the task matches the trigger conditions described in the body."
|
|
4
|
+
inputs: [code, feature-spec, repo]
|
|
5
|
+
artifactType: code
|
|
4
6
|
---
|
|
5
7
|
# React
|
|
6
8
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: frontend-design-accessibility
|
|
3
3
|
description: Target **WCAG 2.1 AA** as the minimum for any public-facing product. WCAG 2.2 AA is the current standard (published October 2023) and required by many regulatory frameworks (EU Web Accessibility Directive, ADA, Section 508). Use when the task matches the trigger conditions described in the body.
|
|
4
|
+
inputs: [ui-or-component]
|
|
5
|
+
artifactType: accessibility-findings
|
|
4
6
|
---
|
|
5
7
|
# Accessibility (WCAG 2.2 / Inclusive Design)
|
|
6
8
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: frontend-design-component-patterns
|
|
3
3
|
description: Use this skill when designing component architecture, building design systems, or structuring reusable UI.
|
|
4
|
+
inputs: [ui-or-component, design-spec]
|
|
5
|
+
artifactType: ui-implementation
|
|
4
6
|
---
|
|
5
7
|
# Component Patterns
|
|
6
8
|
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: frontend-design-screen-reader-testing
|
|
3
|
+
description: "Use when: a UI needs to be tested with a screen reader and keyboard to verify it is actually operable non-visually, not just compliant on paper."
|
|
4
|
+
inputs: [ui-or-component]
|
|
5
|
+
artifactType: accessibility-findings
|
|
6
|
+
---
|
|
7
|
+
# Screen Reader Testing
|
|
8
|
+
|
|
9
|
+
Use this skill when a UI needs to be verified as operable with a screen reader and keyboard — accessibility measured by use, not by an automated checklist.
|
|
10
|
+
|
|
11
|
+
Automated scanners catch missing alt text and contrast, but they cannot tell you whether a flow is *usable* non-visually. That requires driving the interface the way a screen-reader user does: keyboard only, listening to what is announced.
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
1. **Pick the flow, not the page.** Test a complete task (sign in, submit a form), because accessibility failures cluster at transitions and dynamic updates.
|
|
16
|
+
2. **Keyboard-only first.** Unplug the mouse. Tab through: is every interactive element reachable, in a sensible order, with a visible focus indicator? Can you complete the task? Note any keyboard trap.
|
|
17
|
+
3. **Screen reader pass** (VoiceOver/NVDA/Orca). For each control, confirm the announced name, role, and state match what's on screen. A button announced as "button" with no name is a failure.
|
|
18
|
+
4. **Dynamic content**: trigger validation errors, loading states, toasts, modals. Confirm they are announced (live regions) and that focus moves correctly — a modal that opens without moving focus is unusable.
|
|
19
|
+
5. **Forms**: confirm each field's label is associated, errors are announced and linked to the field, and required state is conveyed non-visually.
|
|
20
|
+
6. **Record findings** by severity: blocker (task cannot be completed), serious (completable but confusing), minor.
|
|
21
|
+
|
|
22
|
+
## Output shape
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
## Flow: <task>
|
|
26
|
+
| step | issue | severity | expected |
|
|
27
|
+
|---|---|---|---|
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Verification bar
|
|
31
|
+
|
|
32
|
+
- Findings come from actually driving the flow with keyboard + screen reader, not from inspecting markup alone.
|
|
33
|
+
- Each finding names the expected announced name/role/state, so the fix is unambiguous.
|
|
34
|
+
- Severity reflects task impact, not rule count.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: frontend-design-state-management
|
|
3
3
|
description: Use this skill when choosing state management tools, structuring application state, or debugging state issues.
|
|
4
|
+
inputs: [ui-or-component, code]
|
|
5
|
+
artifactType: guidance
|
|
4
6
|
---
|
|
5
7
|
# Frontend State Management
|
|
6
8
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: frontend-design-ui-aesthetics
|
|
3
3
|
description: "Use this skill when making visual design decisions: color, typography, layout, spacing, and visual hierarchy."
|
|
4
|
+
inputs: [ui-or-component, design-spec]
|
|
5
|
+
artifactType: ui-implementation
|
|
4
6
|
---
|
|
5
7
|
# UI Aesthetics
|
|
6
8
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: operating-change-management
|
|
3
3
|
description: Use when a change needs to be categorized by reversibility, when designing rollout gates, or when the team is uncertain how much approval process a change warrants.
|
|
4
|
+
inputs: [change-or-diff]
|
|
5
|
+
artifactType: guidance
|
|
4
6
|
---
|
|
5
7
|
# Change Management
|
|
6
8
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: operating-orchestration-reference
|
|
3
3
|
description: detailed orchestration reference loaded on demand. Use when the task matches the trigger conditions described in the body.
|
|
4
|
+
inputs: [task-context]
|
|
5
|
+
artifactType: guidance
|
|
4
6
|
---
|
|
5
7
|
# Orchestration Reference
|
|
6
8
|
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: operating-raw-data-structuring
|
|
3
|
+
description: "Use when: a raw dataset (CSV, TSV, JSON export, log dump) needs to be parsed, validated, and profiled into a described, trustworthy shape before analysis."
|
|
4
|
+
inputs: [raw-dataset]
|
|
5
|
+
artifactType: data-profile
|
|
6
|
+
---
|
|
7
|
+
# Raw Data Structuring
|
|
8
|
+
|
|
9
|
+
Use this skill when a raw dataset (CSV, TSV, JSON export, log dump) arrives and must be made trustworthy before anyone analyzes or charts it.
|
|
10
|
+
|
|
11
|
+
Raw data lies by omission: silent type coercions, missing values encoded three different ways, duplicated rows, and columns whose meaning no one wrote down. Structure it before trusting it.
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
1. **Identify the grain.** What does one row represent (one event, one user, one day)? State it explicitly; analysis built on the wrong grain is wrong.
|
|
16
|
+
2. **Profile each column**: inferred type, null rate, distinct count, min/max or top values. Flag columns that are >50% null or all-distinct (likely an id) or single-valued (likely useless).
|
|
17
|
+
3. **Detect encoding hazards**: mixed types in one column, multiple null sentinels (`""`, `NA`, `null`, `-1`), inconsistent date formats, numbers stored as strings. List each; do not silently coerce.
|
|
18
|
+
4. **Check for duplicates** on the candidate key; report the duplicate rate.
|
|
19
|
+
5. **Describe each column** in one line — what it means, its unit, and its source if known. Where meaning is genuinely unknown, write `meaning: unknown` rather than inventing one.
|
|
20
|
+
6. **State what the data cannot answer** — questions that look answerable but aren't, given the grain or missingness.
|
|
21
|
+
|
|
22
|
+
## Output shape
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
## Dataset profile
|
|
26
|
+
- grain: <one row = …>
|
|
27
|
+
- rows: <n> · columns: <n> · duplicate rate: <%>
|
|
28
|
+
|
|
29
|
+
## Columns
|
|
30
|
+
| name | type | null% | distinct | meaning |
|
|
31
|
+
|---|---|---|---|---|
|
|
32
|
+
|
|
33
|
+
## Hazards
|
|
34
|
+
- <column>: <encoding/quality hazard>
|
|
35
|
+
|
|
36
|
+
## Out of scope
|
|
37
|
+
- <question the data cannot answer> — <why>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Verification bar
|
|
41
|
+
|
|
42
|
+
- Every reported statistic is computed from the data, not estimated.
|
|
43
|
+
- Column meanings are stated only where known; unknowns are labeled `unknown`.
|
|
44
|
+
- Hazards are surfaced before any downstream metric is derived.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: operating-unstructured-triage
|
|
3
|
+
description: "Use when: a brain-dump, rough notes, or free-form input has no clear type and needs to be structured into intents, candidate work items, and open questions before routing."
|
|
4
|
+
inputs: [unstructured-text]
|
|
5
|
+
artifactType: triage-summary
|
|
6
|
+
---
|
|
7
|
+
# Unstructured Triage
|
|
8
|
+
|
|
9
|
+
Use this skill when free-form input — a brain-dump, rough notes, a stream of thoughts — arrives with no clear type and the classifier returned low confidence or `unknown`.
|
|
10
|
+
|
|
11
|
+
The goal is not to force a classification. It is to extract the latent intents and candidate work items so a human (or a follow-up workflow) can decide what, if anything, to act on. Inventing structure that isn't there is the failure mode.
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
1. **Read for intent, not form.** Separate the few actionable signals from thinking-out-loud.
|
|
16
|
+
2. **Extract candidate work items** — each as a one-line `{ intent, possibleType }` where `possibleType` is your best guess at the taxonomy (bug, requirement, research, memo, …) or `unclear`.
|
|
17
|
+
3. **Extract open questions and unknowns** explicitly — these are usually the point of a brain-dump.
|
|
18
|
+
4. **Note what is missing** to act: a brain-dump rarely has enough to execute. Name the clarifications a human would need.
|
|
19
|
+
5. **Do not assign owners or due dates** unless the text states them.
|
|
20
|
+
6. **Recommend a next step**, not a commitment: "clarify X", "split into N items", or "discard — no actionable signal".
|
|
21
|
+
|
|
22
|
+
## Output shape
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
## Read
|
|
26
|
+
<2–4 sentence neutral summary of what this seems to be>
|
|
27
|
+
|
|
28
|
+
## Candidate items
|
|
29
|
+
- <intent> — possibleType: <type|unclear>
|
|
30
|
+
|
|
31
|
+
## Open questions
|
|
32
|
+
- <question>
|
|
33
|
+
|
|
34
|
+
## To act, we'd need
|
|
35
|
+
- <missing information>
|
|
36
|
+
|
|
37
|
+
## Recommended next step
|
|
38
|
+
<clarify | split | route to <type> | discard>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Verification bar
|
|
42
|
+
|
|
43
|
+
- Candidate items reflect intents actually present in the text; nothing is fabricated to look productive.
|
|
44
|
+
- Confidence stays low where the input is genuinely vague — the output says so rather than manufacturing certainty.
|
|
45
|
+
- No owners, dates, or decisions are asserted unless the input states them.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: quality-gates-premortem
|
|
3
|
+
description: "Use when: a plan or design needs a premortem — imagining it has already failed and working backward to the failure modes — before committing to it."
|
|
4
|
+
inputs: [plan-or-design]
|
|
5
|
+
artifactType: risk-list
|
|
6
|
+
---
|
|
7
|
+
# Premortem
|
|
8
|
+
|
|
9
|
+
Use this skill when a plan, design, or proposal needs to be stress-tested before commitment, by imagining it has already failed.
|
|
10
|
+
|
|
11
|
+
A premortem inverts optimism: instead of asking "will this work?", it asserts "it's six months later and this failed — why?". Stating failure as a given frees people to name risks that politeness or momentum would otherwise suppress.
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
1. **Set the frame**: "It is <horizon> from now. This shipped and failed badly. Write the post-mortem headline."
|
|
16
|
+
2. **Generate failure modes** independently across categories: technical (it didn't work), adoption (no one used it), operational (it broke in prod), people (the owner left), external (a dependency/market moved).
|
|
17
|
+
3. **For each failure mode**, state the mechanism (how it leads to failure), a rough likelihood (low/med/high), and the earliest observable signal that it is happening.
|
|
18
|
+
4. **Separate the fatal from the survivable.** A premortem's value is finding the one or two failures that would be unrecoverable.
|
|
19
|
+
5. **Propose a cheap probe or guardrail** for each high-likelihood or fatal mode — something that would surface it early.
|
|
20
|
+
6. **Name the assumption** each fatal failure depends on, and whether it has been validated.
|
|
21
|
+
|
|
22
|
+
## Output shape
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
## Failure modes
|
|
26
|
+
| failure | category | likelihood | earliest signal | guardrail |
|
|
27
|
+
|---|---|---|---|---|
|
|
28
|
+
|
|
29
|
+
## Fatal (unrecoverable) modes
|
|
30
|
+
- <failure> — depends on assumption: <assumption> (validated? yes/no)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Verification bar
|
|
34
|
+
|
|
35
|
+
- Failure modes are concrete mechanisms, not vague worries ("it might be hard").
|
|
36
|
+
- Each fatal mode names the specific assumption it rests on.
|
|
37
|
+
- Likelihoods are stated as judgments, labeled as such — not presented as data.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: quality-gates-review-work
|
|
3
3
|
description: Use this methodology when a change needs rigorous pre-merge validation. Five independent review roles run concurrently. All must pass.
|
|
4
|
+
inputs: [change-or-diff, acceptance-criteria]
|
|
5
|
+
artifactType: review-report
|
|
4
6
|
---
|
|
5
7
|
# Parallel Adversarial Review
|
|
6
8
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-architect-ai-systems
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Architect — AI Systems role. Use when reviewing or generating work by cx-architect, or when an agent is acting in the Architect — AI Systems role.
|
|
4
|
+
inputs: [architecture-design, adr]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: architect.ai-systems
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-architect
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-architect-data
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Architect — Data role. Use when reviewing or generating work by cx-architect, or when an agent is acting in the Architect — Data role.
|
|
4
|
+
inputs: [data-model, architecture-design]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: architect.data
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-architect
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-architect-enterprise
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Architect — Enterprise role. Use when reviewing or generating work by cx-architect, or when an agent is acting in the Architect — Enterprise role.
|
|
4
|
+
inputs: [architecture-design, compliance-requirements]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: architect.enterprise
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-architect
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-architect-integration
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Architect — Integration role. Use when reviewing or generating work by cx-architect, or when an agent is acting in the Architect — Integration role.
|
|
4
|
+
inputs: [integration-design, sequence-diagram]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: architect.integration
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-architect
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-architect
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Architect role. Use when reviewing or generating work by cx-architect, cx-rd-lead, or when an agent is acting in the Architect role.
|
|
4
|
+
inputs: [architecture-design, requirements]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: architect
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-architect
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-architect-platform
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Architect — Platform role. Use when reviewing or generating work by cx-architect, or when an agent is acting in the Architect — Platform role.
|
|
4
|
+
inputs: [platform-design, adr]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: architect.platform
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-architect
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-data-analyst-experiment
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Data Analyst — Experiment role. Use when reviewing or generating work by cx-data-analyst, or when an agent is acting in the Data Analyst — Experiment role.
|
|
4
|
+
inputs: [experiment-plan, metrics]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: data-analyst.experiment
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-data-analyst
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-data-analyst
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Data Analyst role. Use when reviewing or generating work by cx-data-analyst, or when an agent is acting in the Data Analyst role.
|
|
4
|
+
inputs: [dataset, metrics-analysis]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: data-analyst
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-data-analyst
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-data-analyst-product-intelligence
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Data Analyst — Product Intelligence role. Use when reviewing or generating work by cx-data-analyst, cx-product-manager, or when an agent is acting in the Data Analyst — Product Intelligence role.
|
|
4
|
+
inputs: [customer-signals, telemetry]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: data-analyst.product-intelligence
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-data-analyst
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-data-analyst-product
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Data Analyst — Product role. Use when reviewing or generating work by cx-data-analyst, or when an agent is acting in the Data Analyst — Product role.
|
|
4
|
+
inputs: [product-metrics, funnel-data]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: data-analyst.product
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-data-analyst
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-data-analyst-telemetry
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Data Analyst — Telemetry role. Use when reviewing or generating work by cx-data-analyst, cx-sre, or when an agent is acting in the Data Analyst — Telemetry role.
|
|
4
|
+
inputs: [telemetry, metrics]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: data-analyst.telemetry
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-data-analyst
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-data-engineer-pipeline
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Data Engineer — Pipeline role. Use when reviewing or generating work by cx-data-engineer, or when an agent is acting in the Data Engineer — Pipeline role.
|
|
4
|
+
inputs: [pipeline-design, data-contract]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: data-engineer.pipeline
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-data-engineer
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-data-engineer-vector-retrieval
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Data Engineer — Vector Retrieval role. Use when reviewing or generating work by cx-data-engineer, cx-ai-engineer, or when an agent is acting in the Data Engineer — Vector Retrieval role.
|
|
4
|
+
inputs: [retrieval-design, embeddings]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: data-engineer.vector-retrieval
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-data-engineer
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-data-engineer-warehouse
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Data Engineer — Warehouse role. Use when reviewing or generating work by cx-data-engineer, or when an agent is acting in the Data Engineer — Warehouse role.
|
|
4
|
+
inputs: [warehouse-model, metrics]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: data-engineer.warehouse
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-data-engineer
|
package/skills/roles/debugger.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-debugger
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Debugger role. Use when reviewing or generating work by cx-debugger, or when an agent is acting in the Debugger role.
|
|
4
|
+
inputs: [bug-report, failure-signal]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: debugger
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-debugger
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-designer-accessibility
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Designer — Accessibility role. Use when reviewing or generating work by cx-accessibility, or when an agent is acting in the Designer — Accessibility role.
|
|
4
|
+
inputs: [ui-design, component]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: designer.accessibility
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-accessibility
|
package/skills/roles/designer.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-designer
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Designer role. Use when reviewing or generating work by cx-designer, cx-accessibility, or when an agent is acting in the Designer role.
|
|
4
|
+
inputs: [ui-design]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: designer
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-designer
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-engineer-ai
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Engineer — AI role. Use when reviewing or generating work by cx-ai-engineer, or when an agent is acting in the Engineer — AI role.
|
|
4
|
+
inputs: [code-diff, prompt]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: engineer.ai
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-ai-engineer
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-engineer-data
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Engineer — Data role. Use when reviewing or generating work by cx-data-engineer, or when an agent is acting in the Engineer — Data role.
|
|
4
|
+
inputs: [code-diff, data-pipeline]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: engineer.data
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-data-engineer
|
package/skills/roles/engineer.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-engineer
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Engineer role. Use when reviewing or generating work by cx-engineer, cx-ai-engineer, cx-data-engineer, cx-platform-engineer, or when an agent is acting in the Engineer role.
|
|
4
|
+
inputs: [code-diff, task-context]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: engineer
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-engineer
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-engineer-platform
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Engineer — Platform role. Use when reviewing or generating work by cx-platform-engineer, or when an agent is acting in the Engineer — Platform role.
|
|
4
|
+
inputs: [code-diff, internal-tooling]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: engineer.platform
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-platform-engineer
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-operator-docs
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Operator — Docs role. Use when reviewing or generating work by cx-docs-keeper, or when an agent is acting in the Operator — Docs role.
|
|
4
|
+
inputs: [docs, runbook]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: operator.docs
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-docs-keeper
|
package/skills/roles/operator.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-operator
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Operator role. Use when reviewing or generating work by cx-sre, cx-operations, cx-release-manager, cx-docs-keeper, or when an agent is acting in the Operator role.
|
|
4
|
+
inputs: [runbook, deployment-plan]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: operator
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-sre
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-operator-release
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Operator — Release role. Use when reviewing or generating work by cx-release-manager, or when an agent is acting in the Operator — Release role.
|
|
4
|
+
inputs: [release-plan, changelog]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: operator.release
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-release-manager
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roles-operator-sre
|
|
3
3
|
description: Surfaces anti-patterns, failure modes, and counter-moves specific to the Operator — SRE role. Use when reviewing or generating work by cx-sre, or when an agent is acting in the Operator — SRE role.
|
|
4
|
+
inputs: [alert-config, slo]
|
|
5
|
+
artifactType: role-guidance
|
|
4
6
|
role: operator.sre
|
|
5
7
|
applies_to:
|
|
6
8
|
- cx-sre
|