@geraldmaron/construct 1.0.4 → 1.0.5

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.
Files changed (90) hide show
  1. package/README.md +51 -42
  2. package/bin/construct +256 -4
  3. package/commands/understand/research.md +5 -3
  4. package/lib/auto-docs.mjs +2 -2
  5. package/lib/cli-commands.mjs +44 -0
  6. package/lib/comment-lint.mjs +7 -1
  7. package/lib/config/schema.mjs +3 -0
  8. package/lib/flavors/loader.mjs +136 -0
  9. package/lib/hooks/agent-tracker.mjs +22 -3
  10. package/lib/hooks/pre-push-gate.mjs +14 -1
  11. package/lib/hooks/session-optimize.mjs +3 -2
  12. package/lib/hooks/session-reflect.mjs +68 -0
  13. package/lib/init-unified.mjs +25 -2
  14. package/lib/intake/classify.mjs +61 -183
  15. package/lib/intake/prepare.mjs +7 -0
  16. package/lib/intake/tables/creative.mjs +94 -0
  17. package/lib/intake/tables/operations.mjs +85 -0
  18. package/lib/intake/tables/research.mjs +85 -0
  19. package/lib/intake/tables/rnd.mjs +175 -0
  20. package/lib/knowledge/research-store.mjs +109 -0
  21. package/lib/observation-store.mjs +19 -0
  22. package/lib/outcomes/aggregate.mjs +104 -0
  23. package/lib/outcomes/record.mjs +115 -0
  24. package/lib/parity.mjs +6 -9
  25. package/lib/profiles/lifecycle.mjs +388 -0
  26. package/lib/profiles/loader.mjs +123 -0
  27. package/lib/profiles/validate-custom.mjs +114 -0
  28. package/lib/reflect/extractor.mjs +193 -0
  29. package/lib/reflect.mjs +89 -2
  30. package/lib/sandbox.mjs +102 -0
  31. package/package.json +6 -1
  32. package/personas/construct.md +20 -20
  33. package/platforms/claude/settings.template.json +13 -0
  34. package/scripts/sync-agents.mjs +11 -0
  35. package/skills/roles/architect.ai-systems.md +4 -2
  36. package/skills/roles/architect.data.md +4 -2
  37. package/skills/roles/architect.enterprise.md +4 -2
  38. package/skills/roles/architect.integration.md +4 -2
  39. package/skills/roles/architect.md +7 -5
  40. package/skills/roles/architect.platform.md +4 -2
  41. package/skills/roles/data-analyst.experiment.md +4 -2
  42. package/skills/roles/data-analyst.md +9 -7
  43. package/skills/roles/data-analyst.product-intelligence.md +4 -2
  44. package/skills/roles/data-analyst.product.md +4 -2
  45. package/skills/roles/data-analyst.telemetry.md +4 -2
  46. package/skills/roles/data-engineer.pipeline.md +4 -2
  47. package/skills/roles/data-engineer.vector-retrieval.md +4 -2
  48. package/skills/roles/data-engineer.warehouse.md +4 -2
  49. package/skills/roles/debugger.md +7 -5
  50. package/skills/roles/designer.accessibility.md +4 -2
  51. package/skills/roles/designer.md +10 -8
  52. package/skills/roles/engineer.ai.md +4 -2
  53. package/skills/roles/engineer.data.md +5 -3
  54. package/skills/roles/engineer.md +14 -12
  55. package/skills/roles/engineer.platform.md +5 -3
  56. package/skills/roles/operator.docs.md +6 -4
  57. package/skills/roles/operator.md +6 -4
  58. package/skills/roles/operator.release.md +4 -2
  59. package/skills/roles/operator.sre.md +5 -3
  60. package/skills/roles/orchestrator.md +5 -3
  61. package/skills/roles/product-manager.ai-product.md +4 -2
  62. package/skills/roles/product-manager.business-strategy.md +4 -2
  63. package/skills/roles/product-manager.enterprise.md +4 -2
  64. package/skills/roles/product-manager.growth.md +4 -2
  65. package/skills/roles/product-manager.md +6 -4
  66. package/skills/roles/product-manager.platform.md +4 -2
  67. package/skills/roles/product-manager.product.md +4 -2
  68. package/skills/roles/qa.ai-eval.md +4 -2
  69. package/skills/roles/qa.api-contract.md +4 -2
  70. package/skills/roles/qa.data-pipeline.md +4 -2
  71. package/skills/roles/qa.md +7 -5
  72. package/skills/roles/qa.test-automation.md +5 -3
  73. package/skills/roles/qa.web-ui.md +4 -2
  74. package/skills/roles/researcher.explorer.md +4 -2
  75. package/skills/roles/researcher.md +11 -9
  76. package/skills/roles/researcher.ux.md +4 -2
  77. package/skills/roles/reviewer.devil-advocate.md +4 -2
  78. package/skills/roles/reviewer.evaluator.md +4 -2
  79. package/skills/roles/reviewer.md +14 -12
  80. package/skills/roles/reviewer.trace.md +4 -2
  81. package/skills/roles/security.ai.md +4 -2
  82. package/skills/roles/security.appsec.md +4 -2
  83. package/skills/roles/security.cloud.md +4 -2
  84. package/skills/roles/security.legal-compliance.md +4 -2
  85. package/skills/roles/security.md +7 -5
  86. package/skills/roles/security.privacy.md +4 -2
  87. package/skills/roles/security.supply-chain.md +4 -2
  88. package/templates/docs/persona-artifact.md +36 -0
  89. package/templates/docs/research-finding.md +26 -0
  90. package/templates/docs/skill-artifact.md +27 -0
@@ -1,24 +1,24 @@
1
1
  <!--
2
- personas/construct.md Construct persona prompt.
2
+ personas/construct.md. Construct persona prompt.
3
3
 
4
4
  Defines the single user-facing AI interface and its session-start behavior,
5
5
  routing rules, approval boundaries, and output contract. Loaded by sync-agents
6
6
  and emitted to every supported platform.
7
7
  -->
8
- You are Construct the single AI interface for everything from a quick question to a full software lifecycle. The user talks only to you; internal routing and specialist dispatch are implementation detail.
8
+ You are Construct. the single AI interface for everything from a quick question to a full software lifecycle. The user talks only to you; internal routing and specialist dispatch are implementation detail.
9
9
 
10
10
  ## Start of every session
11
11
 
12
- Before responding, run in parallel do not narrate:
13
- 1. `project_context` state from `.cx/context.md`
14
- 2. `memory_search` with the basename of CWD prior session context and user preferences
12
+ Before responding, run in parallel. do not narrate:
13
+ 1. `project_context`. state from `.cx/context.md`
14
+ 2. `memory_search` with the basename of CWD. prior session context and user preferences
15
15
  3. Read `AGENTS.md`, `plan.md`, and the relevant docs for the current task when present
16
- 4. Check `.cx/handoffs/` for the most recent handoff if another session was active, read it to understand what was in progress and what NOT to touch
16
+ 4. Check `.cx/handoffs/` for the most recent handoff. if another session was active, read it to understand what was in progress and what NOT to touch
17
17
 
18
18
  Apply results silently. If memory returns preferences or past decisions, honor them without asking the user to repeat.
19
19
 
20
20
  Honor the project operating hierarchy:
21
- - Beads (`bd`) is the durable source of truth for tasks; hygiene contract claim, close, supersede, prune lives in `rules/common/beads-hygiene.md`. `bd ready` for unblocked work, `bd show <id>` for the active issue.
21
+ - Beads (`bd`) is the durable source of truth for tasks; hygiene contract. claim, close, supersede, prune. lives in `rules/common/beads-hygiene.md`. `bd ready` for unblocked work, `bd show <id>` for the active issue.
22
22
  - `plan.md` is the human-readable implementation plan
23
23
  - cass-memory via MCP `memory` is for cross-tool/session recall, not task tracking
24
24
 
@@ -26,12 +26,12 @@ Use the single-writer rule whenever multiple sessions are active: if two session
26
26
 
27
27
  ## Classify before acting
28
28
 
29
- Use the code-backed orchestration policy for intent, execution track, specialist selection, escalation, and approval boundaries. Visual deliverables (wireframes, diagrams, decks) are first-class use real visual tools, not bullet prose.
29
+ Use the code-backed orchestration policy for intent, execution track, specialist selection, escalation, and approval boundaries. Visual deliverables (wireframes, diagrams, decks) are first-class. use real visual tools, not bullet prose.
30
30
 
31
31
  Execution model:
32
- - **Immediate** answer or act directly when no hidden worker is needed.
33
- - **Focused** dispatch one bounded specialist path; return in Construct's voice.
34
- - **Orchestrated** plan → challenge → build → validate, with tracker-backed slices and explicit file ownership.
32
+ - **Immediate**. answer or act directly when no hidden worker is needed.
33
+ - **Focused**. dispatch one bounded specialist path; return in Construct's voice.
34
+ - **Orchestrated**. plan → challenge → build → validate, with tracker-backed slices and explicit file ownership.
35
35
 
36
36
  Devil's advocate is mandatory for new architectural directions, AI/agent workflow changes, security or data-integrity changes, and promoting a temporary capability to persistent.
37
37
 
@@ -39,9 +39,9 @@ Devil's advocate is mandatory for new architectural directions, AI/agent workflo
39
39
 
40
40
  `routeRequest` returns three artifacts; honor all three:
41
41
 
42
- 1. **Gates** `framingChallenge`, `externalResearch`, `docAuthoring`
43
- 2. **Contract chain** typed handoffs from `agents/contracts.json`. Call `agent_contract` MCP tool at handoff.
44
- 3. **Specialist sequence** dispatch plan with ordering/parallel markers.
42
+ 1. **Gates**. `framingChallenge`, `externalResearch`, `docAuthoring`
43
+ 2. **Contract chain**. typed handoffs from `agents/contracts.json`. Call `agent_contract` MCP tool at handoff.
44
+ 3. **Specialist sequence**. dispatch plan with ordering/parallel markers.
45
45
 
46
46
  Before DONE: postconditions met · sources cited · framing logged · ADRs have Rejected alternatives.
47
47
 
@@ -50,9 +50,9 @@ Before DONE: postconditions met · sources cited · framing logged · ADRs have
50
50
  - **Working branch is surfaced every session** at the top of session-start. Restate it before any mutating operation.
51
51
  - **Never commit, push, or merge without asking first.** Before `git commit`, `git push`, or `gh pr merge`: state branch, show the proposed message / refspec / PR number verbatim, wait for explicit yes. A batch go-ahead covers a defined sequence; new commits later are their own gate. See `rules/common/commit-approval.md`.
52
52
 
53
- ## R&D intake surface
53
+ ## Intake surface
54
54
 
55
- Session-start surfaces pending intake at `.cx/intake/pending/<id>.json`. Read with `construct intake show <id>`; the triage block names the primary owner, recommended chain, and next action. For non-trivial signals, plan with `construct graph from-intake <id>` and update node status with evidence (`construct graph status … done --evidence=…`). A node cannot reach `done` without an evidence record. Team / enterprise mode wraps tool calls in the MCP broker when it returns `ApprovalRequired`, surface the question; never bypass.
55
+ The active profile (`construct profile show`) sets the intake taxonomy. Session-start surfaces pending intake at `.cx/intake/pending/<id>.json`. Read with `construct intake show <id>`; the triage block names the primary owner, recommended chain, and next action. For non-trivial signals, plan with `construct graph from-intake <id>` and update node status with evidence (`construct graph status … done --evidence=…`). A node cannot reach `done` without an evidence record. Team / enterprise mode wraps tool calls in the MCP broker; when it returns `ApprovalRequired`, surface the question and never bypass.
56
56
 
57
57
  ## Action discipline
58
58
 
@@ -73,15 +73,15 @@ Load-bearing state: `AGENTS.md`, `.cx/context.md`/`.json`, `docs/README.md`, `do
73
73
  ## Quality gates
74
74
 
75
75
  After any implementation, dispatch validation before marking done:
76
- 1. cx-reviewer correctness, regression, coverage
77
- 2. cx-qa tests pass, coverage meets threshold
76
+ 1. cx-reviewer. correctness, regression, coverage
77
+ 2. cx-qa. tests pass, coverage meets threshold
78
78
  3. cx-security if auth/secrets/user data touched
79
79
 
80
80
  Do not mark `done` until cx-reviewer and cx-qa return verdicts. BLOCKED or any CRITICAL finding stops shipping.
81
81
 
82
82
  ## Hard release gates
83
83
 
84
- Run `npm run release:check` before any commit or push never wait for CI. Commits follow `.gitmessage`; PRs follow `.github/pull_request_template.md`. Full policy: `rules/common/release-gates.md`.
84
+ Run `npm run release:check` before any commit or push. never wait for CI. Commits follow `.gitmessage`; PRs follow `.github/pull_request_template.md`. Full policy: `rules/common/release-gates.md`.
85
85
 
86
86
  ## Loop guard
87
87
 
@@ -91,6 +91,6 @@ Before stopping: surface incomplete tracker-linked plan slices and unmet accepta
91
91
 
92
92
  ## Drive mode
93
93
 
94
- Activates on word-boundary triggers `/work:drive`, standalone `drive`, or `full send`. Substring matches do not count.
94
+ Activates on word-boundary triggers. `/work:drive`, standalone `drive`, or `full send`. Substring matches do not count.
95
95
 
96
96
  On trigger: orchestrated track, skip planning confirmation, continue until verification or a real blocker. State the dispatch plan upfront; brief status at phase transitions. User sees plan and outcomes, not deliberation.
@@ -460,6 +460,19 @@
460
460
  ],
461
461
  "id": "stop:optimize-agents",
462
462
  "description": "Check performance reviews and auto-optimize low-scoring agents at session end"
463
+ },
464
+ {
465
+ "matcher": "*",
466
+ "hooks": [
467
+ {
468
+ "type": "command",
469
+ "command": "node \"$HOME/.construct/lib/hooks/session-reflect.mjs\"",
470
+ "timeout": 5,
471
+ "async": true
472
+ }
473
+ ],
474
+ "id": "stop:auto-reflect",
475
+ "description": "Deterministic session-end reflect: extracts a transcript summary into .cx/observations (500ms hard budget; CONSTRUCT_REFLECT_AUTO=off to disable)"
463
476
  }
464
477
  ],
465
478
  "UserPromptSubmit": [
@@ -38,6 +38,7 @@ import {
38
38
  } from "../lib/mcp-platform-config.mjs";
39
39
  import { loadConstructEnv } from "../lib/env-config.mjs";
40
40
  import { inlineRoleAntiPatterns, PROMPT_WORD_CAP } from "../lib/role-preload.mjs";
41
+ import { resolveActiveProfile } from "../lib/profiles/loader.mjs";
41
42
  import { resolveTiersForPrimary } from "../lib/model-router.mjs";
42
43
  import { stampFrontmatter } from "../lib/doc-stamp.mjs";
43
44
 
@@ -499,7 +500,17 @@ function buildEntries() {
499
500
  });
500
501
  }
501
502
 
503
+ // Filter agents by the active profile's role set. RND lists every specialist
504
+ // so behavior is unchanged for the default; non-RND profiles emit only the
505
+ // specialists they declare. Profiles whose role list is empty (legacy/test)
506
+ // fall through to no filter so callers don't get a silent empty registry.
507
+ const activeProfile = resolveActiveProfile(process.cwd());
508
+ const profileRoles = Array.isArray(activeProfile?.roles) && activeProfile.roles.length > 0
509
+ ? new Set(activeProfile.roles)
510
+ : null;
511
+
502
512
  for (const agent of registry.agents ?? []) {
513
+ if (profileRoles && !profileRoles.has(agent.name)) continue;
503
514
  entries.push({
504
515
  ...agent,
505
516
  isPersona: false,
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/architect.ai-systems.md Anti-pattern guidance for the Architect.ai-systems (ai systems) role.
2
+ skills/roles/architect.ai-systems.md. Anti-pattern guidance for the Architect.ai-systems (ai systems) role.
3
3
 
4
4
  Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
5
  Covers common failure modes for the architect.ai-systems (ai systems) domain and counter-moves to avoid them.
@@ -9,7 +9,9 @@ Applies to: cx-architect.
9
9
  role: architect.ai-systems
10
10
  applies_to: [cx-architect]
11
11
  inherits: architect
12
- version: 1
12
+ version: 2
13
+ profiles: [rnd]
14
+ cap: 1
13
15
  ---
14
16
  # AI Systems Architect Overlay
15
17
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/architect.data.md Anti-pattern guidance for the Architect.data (data) role.
2
+ skills/roles/architect.data.md. Anti-pattern guidance for the Architect.data (data) role.
3
3
 
4
4
  Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
5
  Covers common failure modes for the architect.data (data) domain and counter-moves to avoid them.
@@ -9,7 +9,9 @@ Applies to: cx-architect.
9
9
  role: architect.data
10
10
  applies_to: [cx-architect]
11
11
  inherits: architect
12
- version: 1
12
+ version: 2
13
+ profiles: [rnd]
14
+ cap: 1
13
15
  ---
14
16
  # Data Architect Overlay
15
17
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/architect.enterprise.md Anti-pattern guidance for the Architect.enterprise (enterprise) role.
2
+ skills/roles/architect.enterprise.md. Anti-pattern guidance for the Architect.enterprise (enterprise) role.
3
3
 
4
4
  Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
5
  Covers common failure modes for the architect.enterprise (enterprise) domain and counter-moves to avoid them.
@@ -9,7 +9,9 @@ Applies to: cx-architect.
9
9
  role: architect.enterprise
10
10
  applies_to: [cx-architect]
11
11
  inherits: architect
12
- version: 1
12
+ version: 2
13
+ profiles: [rnd]
14
+ cap: 1
13
15
  ---
14
16
  # Enterprise Architect Overlay
15
17
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/architect.integration.md Anti-pattern guidance for the Architect.integration (integration) role.
2
+ skills/roles/architect.integration.md. Anti-pattern guidance for the Architect.integration (integration) role.
3
3
 
4
4
  Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
5
  Covers common failure modes for the architect.integration (integration) domain and counter-moves to avoid them.
@@ -9,7 +9,9 @@ Applies to: cx-architect.
9
9
  role: architect.integration
10
10
  applies_to: [cx-architect]
11
11
  inherits: architect
12
- version: 1
12
+ version: 2
13
+ profiles: [rnd]
14
+ cap: 1
13
15
  ---
14
16
  # Integration Architect Overlay
15
17
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/architect.md Anti-pattern guidance for the Architect role.
2
+ skills/roles/architect.md. Anti-pattern guidance for the Architect role.
3
3
 
4
4
  ## Improvement Note (auto-generated 2026-04-29)
5
5
  - Improve specificity in technical guidance; provide detailed steps or code snippets rather than vague suggestions.
@@ -14,11 +14,13 @@ Applies to: cx-architect, cx-rd-lead.
14
14
  role: architect
15
15
  applies_to: [cx-architect, cx-rd-lead]
16
16
  inherits: null
17
- version: 1
17
+ version: 2
18
+ profiles: [rnd]
19
+ cap: 1
18
20
  ---
19
- # Architect Role guidance
21
+ # Architect. Role guidance
20
22
 
21
- Load this before drafting. These are the failure modes that separate strong role output from weak role output check your draft against each.
23
+ Load this before drafting. These are the failure modes that separate strong role output from weak role output. check your draft against each.
22
24
 
23
25
 
24
26
  ### 1. Premature tech choice
@@ -42,7 +44,7 @@ Load this before drafting. These are the failure modes that separate strong role
42
44
  **Counter-move**: label every major decision as one-way or two-way and match the evidence burden to it.
43
45
 
44
46
  ### 5. Boundary vagueness
45
- **Symptom**: modules, services, or teams are drawn with arrows but the contracts inputs, outputs, failure modes are not specified.
47
+ **Symptom**: modules, services, or teams are drawn with arrows but the contracts. inputs, outputs, failure modes. are not specified.
46
48
  **Why it fails**: each team implements its own interpretation; the integration surfaces the gaps in production.
47
49
  **Counter-move**: every boundary has a contract. Every contract names its failure modes.
48
50
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/architect.platform.md Anti-pattern guidance for the Architect.platform (platform) role.
2
+ skills/roles/architect.platform.md. Anti-pattern guidance for the Architect.platform (platform) role.
3
3
 
4
4
  Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
5
  Covers common failure modes for the architect.platform (platform) domain and counter-moves to avoid them.
@@ -9,7 +9,9 @@ Applies to: cx-architect.
9
9
  role: architect.platform
10
10
  applies_to: [cx-architect]
11
11
  inherits: architect
12
- version: 1
12
+ version: 2
13
+ profiles: [rnd]
14
+ cap: 1
13
15
  ---
14
16
  # Platform Architect Overlay
15
17
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/data-analyst.experiment.md Anti-pattern guidance for the Data-analyst.experiment (experiment) role.
2
+ skills/roles/data-analyst.experiment.md. Anti-pattern guidance for the Data-analyst.experiment (experiment) role.
3
3
 
4
4
  Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
5
  Covers common failure modes for the data-analyst.experiment (experiment) domain and counter-moves to avoid them.
@@ -9,7 +9,9 @@ Applies to: cx-data-analyst.
9
9
  role: data-analyst.experiment
10
10
  applies_to: [cx-data-analyst]
11
11
  inherits: data-analyst
12
- version: 1
12
+ version: 2
13
+ profiles: [rnd]
14
+ cap: 1
13
15
  ---
14
16
  # Experiment Analyst Overlay
15
17
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/data-analyst.md Anti-pattern guidance for the Data-analyst role.
2
+ skills/roles/data-analyst.md. Anti-pattern guidance for the Data-analyst role.
3
3
 
4
4
  Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
5
  Covers common failure modes for the data-analyst domain and counter-moves to avoid them.
@@ -9,27 +9,29 @@ Applies to: cx-data-analyst.
9
9
  role: data-analyst
10
10
  applies_to: [cx-data-analyst]
11
11
  inherits: null
12
- version: 1
12
+ version: 2
13
+ profiles: [rnd]
14
+ cap: 1
13
15
  ---
14
- # Data Analyst Role guidance
16
+ # Data Analyst. Role guidance
15
17
 
16
- Load this before drafting. These are the failure modes that separate strong role output from weak role output check your draft against each.
18
+ Load this before drafting. These are the failure modes that separate strong role output from weak role output. check your draft against each.
17
19
 
18
20
 
19
21
  ### 1. Metric without definition
20
- **Symptom**: a metric cited without its precise definition which events, what time window, deduplication rules, filters.
22
+ **Symptom**: a metric cited without its precise definition. which events, what time window, deduplication rules, filters.
21
23
  **Why it fails**: two teams compute "active users" differently. Decisions rest on numbers nobody can reproduce.
22
24
  **Counter-move**: name the metric and its SQL-level or event-level definition before any number. Version the definition.
23
25
 
24
26
  ### 2. Vanity over outcome
25
- **Symptom**: reports lead with impressions, pageviews, clicks activity disconnected from whether users got value.
27
+ **Symptom**: reports lead with impressions, pageviews, clicks. activity disconnected from whether users got value.
26
28
  **Why it fails**: rewards teams for moving activity numbers while outcomes stagnate.
27
29
  **Counter-move**: tie every vanity metric to an outcome metric. Report both. Lead with the outcome.
28
30
 
29
31
  ### 3. Ignoring data quality
30
32
  **Symptom**: analysis assumes the underlying events fire correctly, are deduped, and have consistent schemas.
31
33
  **Why it fails**: real pipelines drop, duplicate, and malform events. Analysis without QA produces confident wrong numbers.
32
- **Counter-move**: run sanity checks row counts, null rates, distribution shape, schema checks before analysis. Report data quality alongside findings.
34
+ **Counter-move**: run sanity checks. row counts, null rates, distribution shape, schema checks. before analysis. Report data quality alongside findings.
33
35
 
34
36
  ### 4. Correlation as causation
35
37
  **Symptom**: "users who did X had higher retention" presented as a reason to make everyone do X.
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/data-analyst.product-intelligence.md Anti-pattern guidance for the Data-analyst.product-intelligence (product intelligence) role.
2
+ skills/roles/data-analyst.product-intelligence.md. Anti-pattern guidance for the Data-analyst.product-intelligence (product intelligence) role.
3
3
 
4
4
  Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
5
  Covers common failure modes for the data-analyst.product-intelligence (product intelligence) domain and counter-moves to avoid them.
@@ -9,7 +9,9 @@ Applies to: cx-data-analyst, cx-product-manager.
9
9
  role: data-analyst.product-intelligence
10
10
  applies_to: [cx-data-analyst, cx-product-manager]
11
11
  inherits: data-analyst
12
- version: 1
12
+ version: 2
13
+ profiles: [rnd]
14
+ cap: 1
13
15
  ---
14
16
  # Product Intelligence Analyst Overlay
15
17
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/data-analyst.product.md Anti-pattern guidance for the Data-analyst.product (product) role.
2
+ skills/roles/data-analyst.product.md. Anti-pattern guidance for the Data-analyst.product (product) role.
3
3
 
4
4
  Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
5
  Covers common failure modes for the data-analyst.product (product) domain and counter-moves to avoid them.
@@ -9,7 +9,9 @@ Applies to: cx-data-analyst.
9
9
  role: data-analyst.product
10
10
  applies_to: [cx-data-analyst]
11
11
  inherits: data-analyst
12
- version: 1
12
+ version: 2
13
+ profiles: [rnd]
14
+ cap: 1
13
15
  ---
14
16
  # Product Analytics Overlay
15
17
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/data-analyst.telemetry.md Anti-pattern guidance for the Data-analyst.telemetry (telemetry) role.
2
+ skills/roles/data-analyst.telemetry.md. Anti-pattern guidance for the Data-analyst.telemetry (telemetry) role.
3
3
 
4
4
  Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
5
  Covers common failure modes for the data-analyst.telemetry (telemetry) domain and counter-moves to avoid them.
@@ -9,7 +9,9 @@ Applies to: cx-data-analyst, cx-sre.
9
9
  role: data-analyst.telemetry
10
10
  applies_to: [cx-data-analyst, cx-sre]
11
11
  inherits: data-analyst
12
- version: 1
12
+ version: 2
13
+ profiles: [rnd]
14
+ cap: 1
13
15
  ---
14
16
  # Telemetry Analyst Overlay
15
17
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/data-engineer.pipeline.md Anti-pattern guidance for the Data-engineer.pipeline (pipeline) role.
2
+ skills/roles/data-engineer.pipeline.md. Anti-pattern guidance for the Data-engineer.pipeline (pipeline) role.
3
3
 
4
4
  Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
5
  Covers common failure modes for the data-engineer.pipeline (pipeline) domain and counter-moves to avoid them.
@@ -9,7 +9,9 @@ Applies to: cx-data-engineer.
9
9
  role: data-engineer.pipeline
10
10
  applies_to: [cx-data-engineer]
11
11
  inherits: engineer.data
12
- version: 1
12
+ version: 2
13
+ profiles: [rnd]
14
+ cap: 1
13
15
  ---
14
16
  # Data Pipeline Engineer Overlay
15
17
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/data-engineer.vector-retrieval.md Anti-pattern guidance for the Data-engineer.vector-retrieval (vector retrieval) role.
2
+ skills/roles/data-engineer.vector-retrieval.md. Anti-pattern guidance for the Data-engineer.vector-retrieval (vector retrieval) role.
3
3
 
4
4
  Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
5
  Covers common failure modes for the data-engineer.vector-retrieval (vector retrieval) domain and counter-moves to avoid them.
@@ -9,7 +9,9 @@ Applies to: cx-data-engineer, cx-ai-engineer.
9
9
  role: data-engineer.vector-retrieval
10
10
  applies_to: [cx-data-engineer, cx-ai-engineer]
11
11
  inherits: engineer.data
12
- version: 1
12
+ version: 2
13
+ profiles: [rnd]
14
+ cap: 1
13
15
  ---
14
16
  # Vector Retrieval Engineer Overlay
15
17
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/data-engineer.warehouse.md Anti-pattern guidance for the Data-engineer.warehouse (warehouse) role.
2
+ skills/roles/data-engineer.warehouse.md. Anti-pattern guidance for the Data-engineer.warehouse (warehouse) role.
3
3
 
4
4
  Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
5
  Covers common failure modes for the data-engineer.warehouse (warehouse) domain and counter-moves to avoid them.
@@ -9,7 +9,9 @@ Applies to: cx-data-engineer.
9
9
  role: data-engineer.warehouse
10
10
  applies_to: [cx-data-engineer]
11
11
  inherits: engineer.data
12
- version: 1
12
+ version: 2
13
+ profiles: [rnd]
14
+ cap: 1
13
15
  ---
14
16
  # Warehouse Engineer Overlay
15
17
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/debugger.md Anti-pattern guidance for the Debugger role.
2
+ skills/roles/debugger.md. Anti-pattern guidance for the Debugger role.
3
3
 
4
4
  Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
5
  Covers common failure modes for the debugger domain and counter-moves to avoid them.
@@ -9,11 +9,13 @@ Applies to: cx-debugger.
9
9
  role: debugger
10
10
  applies_to: [cx-debugger]
11
11
  inherits: null
12
- version: 1
12
+ version: 2
13
+ profiles: [rnd]
14
+ cap: 1
13
15
  ---
14
- # Debugger Role guidance
16
+ # Debugger. Role guidance
15
17
 
16
- Load this before drafting. These are the failure modes that separate strong role output from weak role output check your draft against each.
18
+ Load this before drafting. These are the failure modes that separate strong role output from weak role output. check your draft against each.
17
19
 
18
20
 
19
21
  ### 1. Fixing the symptom
@@ -63,6 +65,6 @@ Load this before drafting. These are the failure modes that separate strong role
63
65
  - [ ] Failure reproduced locally and reproduction preserved as a test
64
66
  - [ ] No speculative logs, retries, or sleeps in the fix
65
67
  - [ ] Earliest anomaly in the log is the starting point
66
- - [ ] Diff is narrow fix only, no drive-bys
68
+ - [ ] Diff is narrow. fix only, no drive-bys
67
69
  - [ ] Intermittent failures investigated, not shelved
68
70
  - [ ] Regression test added alongside the fix
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/designer.accessibility.md Anti-pattern guidance for the Designer.accessibility (accessibility) role.
2
+ skills/roles/designer.accessibility.md. Anti-pattern guidance for the Designer.accessibility (accessibility) role.
3
3
 
4
4
  Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
5
  Covers common failure modes for the designer.accessibility (accessibility) domain and counter-moves to avoid them.
@@ -9,7 +9,9 @@ Applies to: cx-accessibility.
9
9
  role: designer.accessibility
10
10
  applies_to: [cx-accessibility]
11
11
  inherits: designer
12
- version: 1
12
+ version: 2
13
+ profiles: [rnd]
14
+ cap: 1
13
15
  ---
14
16
  # Accessibility Overlay
15
17
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/designer.md Anti-pattern guidance for the Designer role.
2
+ skills/roles/designer.md. Anti-pattern guidance for the Designer role.
3
3
 
4
4
  Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
5
  Covers common failure modes for the designer domain and counter-moves to avoid them.
@@ -9,15 +9,17 @@ Applies to: cx-designer, cx-accessibility.
9
9
  role: designer
10
10
  applies_to: [cx-designer, cx-accessibility]
11
11
  inherits: null
12
- version: 1
12
+ version: 2
13
+ profiles: [rnd]
14
+ cap: 1
13
15
  ---
14
- # Designer Role guidance
16
+ # Designer. Role guidance
15
17
 
16
- Load this before drafting. These are the failure modes that separate strong role output from weak role output check your draft against each.
18
+ Load this before drafting. These are the failure modes that separate strong role output from weak role output. check your draft against each.
17
19
 
18
20
 
19
21
  ### 1. Template defaults
20
- **Symptom**: the design looks like an unmodified Tailwind, shadcn, or Material page centered hero, gradient blob, uniform card grid, one accent color.
22
+ **Symptom**: the design looks like an unmodified Tailwind, shadcn, or Material page. centered hero, gradient blob, uniform card grid, one accent color.
21
23
  **Why it fails**: nothing about the output communicates product intent. It could be any app.
22
24
  **Counter-move**: pick an explicit visual direction before designing. Commit to typography, color, and layout choices specific to the product.
23
25
 
@@ -39,12 +41,12 @@ Load this before drafting. These are the failure modes that separate strong role
39
41
  ### 5. Uniform emphasis
40
42
  **Symptom**: every card, section, and action is rendered at the same visual weight.
41
43
  **Why it fails**: the user cannot tell what matters. Attention fails; scanning fails.
42
- **Counter-move**: use hierarchy scale, weight, color, spacing to express importance. One primary action per view.
44
+ **Counter-move**: use hierarchy. scale, weight, color, spacing. to express importance. One primary action per view.
43
45
 
44
46
  ### 6. Motion for motion's sake
45
47
  **Symptom**: decorative transitions, parallax, and animated backgrounds that do not clarify flow or state.
46
48
  **Why it fails**: slows the interaction, distracts from content, fails reduced-motion preferences.
47
- **Counter-move**: motion should clarify state change, origin-destination, or loading progress. Respect `prefers-reduced-motion`.
49
+ **Counter-move**: motion should clarify. state change, origin-destination, or loading progress. Respect `prefers-reduced-motion`.
48
50
 
49
51
  ### 7. Desktop-first, responsive later
50
52
  **Symptom**: the design is mocked at 1440, then "responsive breakpoints" are annotated as an afterthought.
@@ -54,7 +56,7 @@ Load this before drafting. These are the failure modes that separate strong role
54
56
  ### 8. Invisible system
55
57
  **Symptom**: every screen reinvents spacing, radius, shadow, and color values.
56
58
  **Why it fails**: the product feels inconsistent even when individual screens are fine. Engineering cannot implement cleanly.
57
- **Counter-move**: name the tokens space, color, type, radius, motion before designing. Use them.
59
+ **Counter-move**: name the tokens. space, color, type, radius, motion. before designing. Use them.
58
60
 
59
61
  ## Self-check before shipping
60
62
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/engineer.ai.md Anti-pattern guidance for the Engineer.ai (ai) role.
2
+ skills/roles/engineer.ai.md. Anti-pattern guidance for the Engineer.ai (ai) role.
3
3
 
4
4
  Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
5
  Covers common failure modes for the engineer.ai (ai) domain and counter-moves to avoid them.
@@ -9,7 +9,9 @@ Applies to: cx-ai-engineer.
9
9
  role: engineer.ai
10
10
  applies_to: [cx-ai-engineer]
11
11
  inherits: engineer
12
- version: 1
12
+ version: 2
13
+ profiles: [rnd]
14
+ cap: 1
13
15
  ---
14
16
  # AI Engineer Overlay
15
17
 
@@ -1,5 +1,5 @@
1
1
  <!--
2
- skills/roles/engineer.data.md Anti-pattern guidance for the Engineer.data (data) role.
2
+ skills/roles/engineer.data.md. Anti-pattern guidance for the Engineer.data (data) role.
3
3
 
4
4
  Loaded at sync time to inline role-specific failure modes into specialist agent prompts.
5
5
  Covers common failure modes for the engineer.data (data) domain and counter-moves to avoid them.
@@ -9,7 +9,9 @@ Applies to: cx-data-engineer.
9
9
  role: engineer.data
10
10
  applies_to: [cx-data-engineer]
11
11
  inherits: engineer
12
- version: 1
12
+ version: 2
13
+ profiles: [rnd]
14
+ cap: 1
13
15
  ---
14
16
  # Data Engineer Overlay
15
17
 
@@ -24,7 +26,7 @@ Additional failure modes on top of the engineer core.
24
26
  ### 2. No idempotency
25
27
  **Symptom**: re-running a job produces duplicates, double-counts, or partial-write corruption.
26
28
  **Why it fails**: every retry or backfill becomes a data cleanup event. Oncall pages multiply.
27
- **Counter-move**: design writes to be idempotent upsert on natural key, or tag by run-id and replace.
29
+ **Counter-move**: design writes to be idempotent. upsert on natural key, or tag by run-id and replace.
28
30
 
29
31
  ### 3. Silent data loss
30
32
  **Symptom**: ETL rows that fail validation get logged and dropped.