@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
package/skills/devops/testing.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: docs-backlog-proposal-workflow
|
|
3
3
|
description: "Use when: product evidence should create or update Jira, Linear, GitHub Issues, or another tracker."
|
|
4
|
+
inputs: [evidence-brief, prd, signal]
|
|
5
|
+
artifactType: backlog-proposal
|
|
4
6
|
---
|
|
5
7
|
# Backlog Proposal Workflow
|
|
6
8
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: docs-document-ingest-workflow
|
|
3
3
|
description: "Use when: the user points at a PDF, Word doc, spreadsheet, slide deck, export, or mixed document folder and wants a markdown version that Construct can search efficiently later."
|
|
4
|
+
inputs: [document]
|
|
5
|
+
artifactType: ingested-markdown
|
|
4
6
|
---
|
|
5
7
|
# Document Ingest Workflow
|
|
6
8
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: docs-evidence-ingest-workflow
|
|
3
3
|
description: "Use when: the user pastes customer notes, Slack threads, support tickets, sales notes, research snippets, RFCs, analytics summaries, or competitor signals."
|
|
4
|
+
inputs: [signal, document]
|
|
5
|
+
artifactType: evidence-brief
|
|
4
6
|
---
|
|
5
7
|
# Evidence Ingest Workflow
|
|
6
8
|
|
package/skills/docs/init-docs.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: docs-init-docs
|
|
3
3
|
description: "`init docs`, `create docs structure`, `set up documentation`, `docs scaffold`, `documentation init`. Use when the task matches the trigger conditions described in the body."
|
|
4
|
+
inputs: [task-context]
|
|
5
|
+
artifactType: docs-scaffold
|
|
4
6
|
---
|
|
5
7
|
# Skill: init-docs: Initialize Project Documentation Structure
|
|
6
8
|
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: docs-memo-and-decision-capture
|
|
3
|
+
description: "Use when: a decision, status update, or announcement needs to be captured as a short, durable memo that states the decision, its rationale, and what changes."
|
|
4
|
+
inputs: [decision-context]
|
|
5
|
+
artifactType: memo
|
|
6
|
+
---
|
|
7
|
+
# Memo & Decision Capture
|
|
8
|
+
|
|
9
|
+
Use this skill when a decision, status update, or announcement needs to be captured as a short, durable memo.
|
|
10
|
+
|
|
11
|
+
A good memo is short and load-bearing: a reader six months later should understand what was decided, why, and what it changed — without attending the meeting. Length is not value; a memo that buries the decision under context has failed.
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
1. **Lead with the decision or update** in the first sentence. The reader should not have to hunt for it.
|
|
16
|
+
2. **State the context** in 2–4 sentences: what prompted this, what problem it addresses.
|
|
17
|
+
3. **Record the rationale** — why this option over the alternatives actually considered. If alternatives were weighed, name them and why they lost.
|
|
18
|
+
4. **State what changes** as a result: who does what differently, what is now in or out of scope.
|
|
19
|
+
5. **List action items** with owners, if any.
|
|
20
|
+
6. **Date and attribute** the memo. A memo without a date is not durable.
|
|
21
|
+
|
|
22
|
+
## Output shape
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
# Memo: <subject>
|
|
26
|
+
_<date> · <author>_
|
|
27
|
+
|
|
28
|
+
**Decision/Update:** <one sentence>
|
|
29
|
+
|
|
30
|
+
## Context
|
|
31
|
+
<2–4 sentences>
|
|
32
|
+
|
|
33
|
+
## Rationale
|
|
34
|
+
<why this, over what alternatives>
|
|
35
|
+
|
|
36
|
+
## What changes
|
|
37
|
+
- <change> — owner: <name>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Verification bar
|
|
41
|
+
|
|
42
|
+
- The decision/update is stated in the first sentence, unhedged where the decision is firm.
|
|
43
|
+
- Rationale references only alternatives actually considered — no invented options.
|
|
44
|
+
- The memo is dated and attributed.
|
|
45
|
+
- Nothing load-bearing is asserted that the source context does not support; unknowns are written as `unknown`.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: docs-product-intelligence-review
|
|
3
3
|
description: "Use when: reviewing PRDs, Meta PRDs, PRFAQs, evidence briefs, signal briefs, customer profiles, or backlog proposals."
|
|
4
|
+
inputs: [prd, evidence-brief]
|
|
5
|
+
artifactType: review
|
|
4
6
|
---
|
|
5
7
|
# Product Intelligence Review
|
|
6
8
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: docs-product-intelligence-workflow
|
|
3
3
|
description: "Use when: the request involves customer evidence, PM synthesis, product requirements, PRDs, PRFAQs, customer profiles, product signals, or backlog proposals."
|
|
4
|
+
inputs: [signal, evidence-brief]
|
|
5
|
+
artifactType: prd
|
|
4
6
|
---
|
|
5
7
|
# Product Intelligence Workflow
|
|
6
8
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: docs-product-signal-workflow
|
|
3
3
|
description: "Use when: the user asks what customers are asking for, what themes are emerging, whether evidence is strong enough, or what should become a PRD."
|
|
4
|
+
inputs: [signal, evidence-brief]
|
|
5
|
+
artifactType: signal-brief
|
|
4
6
|
---
|
|
5
7
|
# Product Signal Workflow
|
|
6
8
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: docs-strategy-workflow
|
|
3
3
|
description: "Use when: the user asks about product direction, strategic bets, what to prioritize, whether a signal aligns with strategy, or wants to update the strategy."
|
|
4
|
+
inputs: [signal, decision-context]
|
|
5
|
+
artifactType: strategy
|
|
4
6
|
---
|
|
5
7
|
# Strategy Workflow
|
|
6
8
|
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: docs-transcript-synthesis
|
|
3
|
+
description: "Use when: a meeting, call, or interview transcript needs to be turned into a summary, the decisions made, and concrete action items with owners."
|
|
4
|
+
inputs: [transcript-text]
|
|
5
|
+
artifactType: meeting-summary
|
|
6
|
+
---
|
|
7
|
+
# Transcript Synthesis
|
|
8
|
+
|
|
9
|
+
Use this skill when a meeting, call, or interview transcript needs to be turned into a structured summary with decisions and action items.
|
|
10
|
+
|
|
11
|
+
A raw transcript is a low-signal artifact: speaker turns, filler, and tangents bury the few load-bearing outcomes. The job is to extract those outcomes faithfully without inventing any that were not actually stated.
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
1. **Read the whole transcript first.** Do not summarize incrementally — a decision late in the call often reverses an earlier one.
|
|
16
|
+
2. **Identify participants and roles** if stated. Note who owns what. If unstated, write `owner: unassigned` rather than guessing.
|
|
17
|
+
3. **Extract decisions.** A decision is an explicit commitment ("we'll ship X", "we're not doing Y"). Quote or tightly paraphrase the line that establishes it. Do not promote a musing ("maybe we could…") to a decision.
|
|
18
|
+
4. **Extract action items** as `{ action, owner, due? }`. Only include items someone actually committed to. Mark `due` only if a date was stated.
|
|
19
|
+
5. **Extract open questions** — anything raised and left unresolved.
|
|
20
|
+
6. **Write a 3–6 sentence summary** of what the conversation was about and what changed as a result.
|
|
21
|
+
7. **Flag low-confidence sections** — crosstalk, inaudible markers, ambiguous antecedents — as `[unclear]` rather than smoothing them over.
|
|
22
|
+
|
|
23
|
+
## Output shape
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
## Summary
|
|
27
|
+
<3–6 sentences>
|
|
28
|
+
|
|
29
|
+
## Decisions
|
|
30
|
+
- <decision> — basis: "<quoted/paraphrased line>"
|
|
31
|
+
|
|
32
|
+
## Action items
|
|
33
|
+
- [ ] <action> — owner: <name|unassigned>[, due: <date>]
|
|
34
|
+
|
|
35
|
+
## Open questions
|
|
36
|
+
- <question>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Verification bar
|
|
40
|
+
|
|
41
|
+
- Every decision and action item traces to an actual statement in the transcript — no invented commitments or owners.
|
|
42
|
+
- Tentative language stays tentative; do not sharpen "maybe" into "will".
|
|
43
|
+
- Unresolved or inaudible content is surfaced, not silently dropped.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: exploration-dependency-graph-reading
|
|
3
3
|
description: Use when assessing the risk surface of a project's dependencies, planning upgrades, or evaluating a new codebase's supply chain posture.
|
|
4
|
+
inputs: [dependency-manifest, repo]
|
|
5
|
+
artifactType: dependency-graph
|
|
4
6
|
---
|
|
5
7
|
# Dependency Graph Reading
|
|
6
8
|
|
|
@@ -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
|
|