@bonesofspring/ai-rules 0.2.10 → 0.2.11

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 (152) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +3 -1
  3. package/bin/cli.js +2 -0
  4. package/package.json +1 -1
  5. package/presets/_shared/core/meta/preset-no-cross-stack-leakage.md +15 -2
  6. package/presets/_shared/core/meta/preset-twin-sync.md +2 -0
  7. package/presets/claude/go/rules/tooling-and-review/preset-no-cross-stack-leakage.md +15 -2
  8. package/presets/claude/go/rules/tooling-and-review/preset-twin-sync.md +2 -0
  9. package/presets/claude/ios-swift/rules/tooling-and-review/preset-no-cross-stack-leakage.md +15 -2
  10. package/presets/claude/ios-swift/rules/tooling-and-review/preset-twin-sync.md +2 -0
  11. package/presets/claude/java/rules/tooling-and-review/preset-no-cross-stack-leakage.md +15 -2
  12. package/presets/claude/java/rules/tooling-and-review/preset-twin-sync.md +2 -0
  13. package/presets/claude/mcp-ts/CLAUDE.md +13 -0
  14. package/presets/claude/mcp-ts/MCP.md +37 -0
  15. package/presets/claude/mcp-ts/README.md +11 -0
  16. package/presets/claude/mcp-ts/REPO_AGENTS.md +49 -0
  17. package/presets/claude/mcp-ts/agents/README.md +21 -0
  18. package/presets/claude/mcp-ts/agents/build-verifier.md +39 -0
  19. package/presets/claude/mcp-ts/agents/feature-developer.md +47 -0
  20. package/presets/claude/mcp-ts/agents/security-reviewer.md +21 -0
  21. package/presets/claude/mcp-ts/agents/solution-architect.md +23 -0
  22. package/presets/claude/mcp-ts/agents/task-analyst.md +25 -0
  23. package/presets/claude/mcp-ts/agents/task-router.md +73 -0
  24. package/presets/claude/mcp-ts/commands/README.md +11 -0
  25. package/presets/claude/mcp-ts/commands/feature-continue.md +19 -0
  26. package/presets/claude/mcp-ts/commands/feature-start.md +33 -0
  27. package/presets/claude/mcp-ts/commands/task-continue.md +49 -0
  28. package/presets/claude/mcp-ts/commands/task.md +49 -0
  29. package/presets/claude/mcp-ts/commands/technical-retro.md +81 -0
  30. package/presets/claude/mcp-ts/hooks/README.md +12 -0
  31. package/presets/claude/mcp-ts/hooks/chain-team-phases.sh +346 -0
  32. package/presets/claude/mcp-ts/hooks/examples/README.md +11 -0
  33. package/presets/claude/mcp-ts/hooks/examples/format-edited.example.sh +16 -0
  34. package/presets/claude/mcp-ts/hooks/examples/secret-guard.example.sh +10 -0
  35. package/presets/claude/mcp-ts/hooks/examples/test-on-save.example.sh +25 -0
  36. package/presets/claude/mcp-ts/hooks/guard-shell-command.sh +79 -0
  37. package/presets/claude/mcp-ts/mcp.json +11 -0
  38. package/presets/claude/mcp-ts/rules/README.md +52 -0
  39. package/presets/claude/mcp-ts/rules/api-and-data/README.md +3 -0
  40. package/presets/claude/mcp-ts/rules/api-and-data/mcp-auth-secrets.md +44 -0
  41. package/presets/claude/mcp-ts/rules/api-and-data/mcp-contract-testing.md +42 -0
  42. package/presets/claude/mcp-ts/rules/api-and-data/mcp-tool-design.md +37 -0
  43. package/presets/claude/mcp-ts/rules/api-and-data/mcp-transport-packaging.md +43 -0
  44. package/presets/claude/mcp-ts/rules/architecture/README.md +3 -0
  45. package/presets/claude/mcp-ts/rules/architecture/feature-delivery.md +45 -0
  46. package/presets/claude/mcp-ts/rules/architecture/mcp-server-boundaries.md +28 -0
  47. package/presets/claude/mcp-ts/rules/architecture/reference-features.md +33 -0
  48. package/presets/claude/mcp-ts/rules/stack/README.md +3 -0
  49. package/presets/claude/mcp-ts/rules/stack/mcp-ts-app-core.md +27 -0
  50. package/presets/claude/mcp-ts/rules/stack/mcp-ts-conventions.md +29 -0
  51. package/presets/claude/mcp-ts/rules/testing/README.md +3 -0
  52. package/presets/claude/mcp-ts/rules/testing/unit.md +30 -0
  53. package/presets/claude/mcp-ts/rules/tooling-and-review/README.md +3 -0
  54. package/presets/claude/mcp-ts/rules/tooling-and-review/agent-team-intake.md +23 -0
  55. package/presets/claude/mcp-ts/rules/tooling-and-review/agent-team-orchestrator.md +161 -0
  56. package/presets/claude/mcp-ts/rules/tooling-and-review/anti-sycophancy-discipline.md +34 -0
  57. package/presets/claude/mcp-ts/rules/tooling-and-review/code-quality.md +52 -0
  58. package/presets/claude/mcp-ts/rules/tooling-and-review/code-review.md +51 -0
  59. package/presets/claude/mcp-ts/rules/tooling-and-review/design-guidance.md +109 -0
  60. package/presets/claude/mcp-ts/rules/tooling-and-review/mcp-ts-tooling.md +31 -0
  61. package/presets/claude/mcp-ts/rules/tooling-and-review/post-change-test.md +30 -0
  62. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-layering.md +36 -0
  63. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-no-cross-stack-leakage.md +69 -0
  64. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-pr-checklist.md +39 -0
  65. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-token-budget.md +41 -0
  66. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-twin-sync.md +46 -0
  67. package/presets/claude/mcp-ts/rules/tooling-and-review/security-mcp.md +52 -0
  68. package/presets/claude/mcp-ts/rules/tooling-and-review/technical-retro.md +20 -0
  69. package/presets/claude/mcp-ts/rules/ui-and-accessibility/README.md +3 -0
  70. package/presets/claude/mcp-ts/skills/README.md +12 -0
  71. package/presets/claude/mcp-ts/skills/code-review/SKILL.md +10 -0
  72. package/presets/claude/mcp-ts/skills/debug-investigation/SKILL.md +11 -0
  73. package/presets/claude/mcp-ts/skills/feature-delivery/SKILL.md +29 -0
  74. package/presets/claude/mcp-ts/skills/unit-testing/SKILL.md +16 -0
  75. package/presets/claude/mcp-ts/team/README.md +17 -0
  76. package/presets/claude/mcp-ts/team/conventions.md +14 -0
  77. package/presets/claude/mcp-ts/team/fixtures/bugfix-standard.json +32 -0
  78. package/presets/claude/mcp-ts/team/fixtures/feature-full.json +33 -0
  79. package/presets/claude/mcp-ts/team/fixtures/feature-light.json +34 -0
  80. package/presets/claude/next/rules/tooling-and-review/preset-no-cross-stack-leakage.md +15 -2
  81. package/presets/claude/next/rules/tooling-and-review/preset-twin-sync.md +2 -0
  82. package/presets/cursor/go/rules/preset-no-cross-stack-leakage.mdc +15 -2
  83. package/presets/cursor/go/rules/preset-twin-sync.mdc +2 -0
  84. package/presets/cursor/ios-swift/rules/preset-no-cross-stack-leakage.mdc +15 -2
  85. package/presets/cursor/ios-swift/rules/preset-twin-sync.mdc +2 -0
  86. package/presets/cursor/java/rules/preset-no-cross-stack-leakage.mdc +15 -2
  87. package/presets/cursor/java/rules/preset-twin-sync.mdc +2 -0
  88. package/presets/cursor/mcp-ts/AGENTS.md +25 -0
  89. package/presets/cursor/mcp-ts/BUGBOT.md +9 -0
  90. package/presets/cursor/mcp-ts/MCP.md +37 -0
  91. package/presets/cursor/mcp-ts/README.md +19 -0
  92. package/presets/cursor/mcp-ts/REPO_AGENTS.md +49 -0
  93. package/presets/cursor/mcp-ts/agents/README.md +21 -0
  94. package/presets/cursor/mcp-ts/agents/build-verifier.md +39 -0
  95. package/presets/cursor/mcp-ts/agents/feature-developer.md +47 -0
  96. package/presets/cursor/mcp-ts/agents/security-reviewer.md +21 -0
  97. package/presets/cursor/mcp-ts/agents/solution-architect.md +23 -0
  98. package/presets/cursor/mcp-ts/agents/task-analyst.md +25 -0
  99. package/presets/cursor/mcp-ts/agents/task-router.md +73 -0
  100. package/presets/cursor/mcp-ts/commands/README.md +11 -0
  101. package/presets/cursor/mcp-ts/commands/feature-continue.md +19 -0
  102. package/presets/cursor/mcp-ts/commands/feature-start.md +33 -0
  103. package/presets/cursor/mcp-ts/commands/task-continue.md +49 -0
  104. package/presets/cursor/mcp-ts/commands/task.md +49 -0
  105. package/presets/cursor/mcp-ts/commands/technical-retro.md +81 -0
  106. package/presets/cursor/mcp-ts/hooks/README.md +12 -0
  107. package/presets/cursor/mcp-ts/hooks/chain-team-phases.sh +346 -0
  108. package/presets/cursor/mcp-ts/hooks/examples/README.md +11 -0
  109. package/presets/cursor/mcp-ts/hooks/examples/format-edited.example.sh +16 -0
  110. package/presets/cursor/mcp-ts/hooks/examples/secret-guard.example.sh +10 -0
  111. package/presets/cursor/mcp-ts/hooks/examples/test-on-save.example.sh +25 -0
  112. package/presets/cursor/mcp-ts/hooks/guard-shell-command.sh +79 -0
  113. package/presets/cursor/mcp-ts/hooks.json +17 -0
  114. package/presets/cursor/mcp-ts/mcp.json +11 -0
  115. package/presets/cursor/mcp-ts/rules/README.md +52 -0
  116. package/presets/cursor/mcp-ts/rules/agent-team-intake.mdc +21 -0
  117. package/presets/cursor/mcp-ts/rules/agent-team-orchestrator.mdc +159 -0
  118. package/presets/cursor/mcp-ts/rules/anti-sycophancy-discipline.mdc +35 -0
  119. package/presets/cursor/mcp-ts/rules/code-quality-and-refactoring.mdc +53 -0
  120. package/presets/cursor/mcp-ts/rules/code-review-mr.mdc +50 -0
  121. package/presets/cursor/mcp-ts/rules/design-guidance.mdc +108 -0
  122. package/presets/cursor/mcp-ts/rules/feature-delivery-workflow.mdc +43 -0
  123. package/presets/cursor/mcp-ts/rules/mcp-auth-secrets.mdc +45 -0
  124. package/presets/cursor/mcp-ts/rules/mcp-contract-testing.mdc +43 -0
  125. package/presets/cursor/mcp-ts/rules/mcp-server-boundaries.mdc +29 -0
  126. package/presets/cursor/mcp-ts/rules/mcp-tool-design.mdc +38 -0
  127. package/presets/cursor/mcp-ts/rules/mcp-transport-packaging.mdc +44 -0
  128. package/presets/cursor/mcp-ts/rules/mcp-ts-app-core.mdc +28 -0
  129. package/presets/cursor/mcp-ts/rules/mcp-ts-conventions.mdc +30 -0
  130. package/presets/cursor/mcp-ts/rules/mcp-ts-tooling.mdc +32 -0
  131. package/presets/cursor/mcp-ts/rules/post-change-test.mdc +26 -0
  132. package/presets/cursor/mcp-ts/rules/preset-layering.mdc +36 -0
  133. package/presets/cursor/mcp-ts/rules/preset-no-cross-stack-leakage.mdc +69 -0
  134. package/presets/cursor/mcp-ts/rules/preset-pr-checklist.mdc +39 -0
  135. package/presets/cursor/mcp-ts/rules/preset-token-budget.mdc +41 -0
  136. package/presets/cursor/mcp-ts/rules/preset-twin-sync.mdc +46 -0
  137. package/presets/cursor/mcp-ts/rules/reference-features.mdc +34 -0
  138. package/presets/cursor/mcp-ts/rules/security-mcp.mdc +53 -0
  139. package/presets/cursor/mcp-ts/rules/technical-retro.mdc +18 -0
  140. package/presets/cursor/mcp-ts/rules/tests-unit.mdc +31 -0
  141. package/presets/cursor/mcp-ts/skills/README.md +12 -0
  142. package/presets/cursor/mcp-ts/skills/code-review/SKILL.md +10 -0
  143. package/presets/cursor/mcp-ts/skills/debug-investigation/SKILL.md +11 -0
  144. package/presets/cursor/mcp-ts/skills/feature-delivery/SKILL.md +29 -0
  145. package/presets/cursor/mcp-ts/skills/unit-testing/SKILL.md +16 -0
  146. package/presets/cursor/mcp-ts/team/README.md +17 -0
  147. package/presets/cursor/mcp-ts/team/conventions.md +14 -0
  148. package/presets/cursor/mcp-ts/team/fixtures/bugfix-standard.json +32 -0
  149. package/presets/cursor/mcp-ts/team/fixtures/feature-full.json +33 -0
  150. package/presets/cursor/mcp-ts/team/fixtures/feature-light.json +34 -0
  151. package/presets/cursor/next/rules/preset-no-cross-stack-leakage.mdc +15 -2
  152. package/presets/cursor/next/rules/preset-twin-sync.mdc +2 -0
@@ -0,0 +1,41 @@
1
+ ---
2
+ description: Preset authoring meta-rule (preset-token-budget)
3
+ paths:
4
+ - packages/ai-rules/presets/**/*
5
+ - .claude/**/*
6
+ - .cursor/rules/**/*
7
+ - .cursor/team/tasks/**/*
8
+ ---
9
+
10
+ <!-- shared-core: meta/preset-token-budget.md -->
11
+
12
+ # Preset token budget
13
+
14
+ Инварианты загрузки правил в **установленном** пресете (consumer app).
15
+
16
+ ## Hard caps
17
+
18
+ | Platform | Always-on | Cap |
19
+ |----------|-----------|-----|
20
+ | Cursor | `alwaysApply: true` | **≤ 3** |
21
+ | Claude | rules **without** `paths:` | **ровно 3** |
22
+
23
+ **Claude Option A (README exclusion):** when counting Claude rules without `paths:` / session-start, **exclude `**/README.md`** (topic indexes are not session-start rules). The intended session-start trio remains **exactly 3**; body budget sums **only those 3** rules.
24
+
25
+ Session-start body budget (где задокументировано): ≤140 строк суммарно (stretch ≤120).
26
+
27
+ ## Meta / author rules
28
+
29
+ Rules for preset authors (`preset-layering`, `preset-twin-sync`, …):
30
+
31
+ - **Never** `alwaysApply: true` on consumer installs.
32
+ - Cursor: `globs` limited to `packages/ai-rules/presets/**` (and dogfood `.cursor/**` where useful).
33
+ - Claude: `paths:` limited to `packages/ai-rules/presets/**` (and `.claude/**` dogfood if present).
34
+
35
+ ## Heavy workflows
36
+
37
+ Orchestrator, feature-delivery, code-review, post-change gates, domain globs — **requestable / paths**, not always-on.
38
+
39
+ ## Verifier
40
+
41
+ build-verifier **FAIL** if alwaysApply / session-start count exceeds 3 (Claude count **excludes `**/README.md`**), or if a `preset-*` meta rule is marked always-on.
@@ -0,0 +1,46 @@
1
+ ---
2
+ description: Preset authoring meta-rule (preset-twin-sync)
3
+ paths:
4
+ - packages/ai-rules/presets/**/*
5
+ - .claude/**/*
6
+ - .cursor/rules/**/*
7
+ - .cursor/team/tasks/**/*
8
+ ---
9
+
10
+ <!-- shared-core: meta/preset-twin-sync.md -->
11
+
12
+ # Preset twin sync
13
+
14
+ Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
15
+
16
+ ## Matrix
17
+
18
+ | Stack | Cursor SoT | Claude derive | Mapping table |
19
+ |-------|------------|---------------|---------------|
20
+ | `next` | `presets/cursor/next/rules/*.mdc` | `presets/claude/next/rules/<topic>/` | **Required** in `claude/next/rules/README.md` |
21
+ | `ios-swift` | `presets/cursor/ios-swift/rules/*.mdc` | `presets/claude/ios-swift/rules/<topic>/` | Keep in `claude/ios-swift/rules/README.md` |
22
+ | `go` | `presets/cursor/go/rules/*.mdc` | `presets/claude/go/rules/<topic>/` | Keep in `claude/go/rules/README.md` |
23
+ | `java` | `presets/cursor/java/rules/*.mdc` | `presets/claude/java/rules/<topic>/` | Keep in `claude/java/rules/README.md` |
24
+ | `mcp-ts` | `presets/cursor/mcp-ts/rules/*.mdc` | `presets/claude/mcp-ts/rules/<topic>/` | Keep in `claude/mcp-ts/rules/README.md` |
25
+
26
+ ## Same-PR checklist
27
+
28
+ 1. Edit Cursor rule first (body + frontmatter).
29
+ 2. Update Claude twin: body + `paths:` (from Cursor `globs:` / requestable triggers); drop `alwaysApply`.
30
+ 3. Update mapping table row if stem/path changed.
31
+ 4. If body embeds core (`<!-- shared-core: … -->`), sync core consumers across stacks when core changed.
32
+
33
+ ## Twin depth
34
+
35
+ - **Domain** rules: ≥15 body lines (FAIL if thin without documented alias reason).
36
+ - **Thin aliases** (`agent-team-intake`, `technical-retro`): may be shorter (soft) if they only point to a command/skill.
37
+
38
+ ## Severity (build-verifier)
39
+
40
+ - **next:** missing Claude twin for a changed Cursor rule → **FAIL** (mapping table required).
41
+ - **ios-swift:** missing Claude twin for a changed Cursor rule → **FAIL**.
42
+ - **go:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift; mapping table required).
43
+ - **java:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift / go; mapping table required).
44
+ - **mcp-ts:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift / go / java; mapping table required).
45
+
46
+ Dogfood: sync packages → root `.cursor/` after Cursor SoT changes (not the reverse). Use `packages/ai-rules/scripts/sync-dogfood-cursor.sh`.
@@ -0,0 +1,52 @@
1
+ ---
2
+ description: MCP security: injection boundaries, capability minimization, SSRF/secrets
3
+ paths:
4
+ - src/tools/**/*
5
+ - src/resources/**/*
6
+ - "**/auth/**/*"
7
+ - "**/config/**/*"
8
+ ---
9
+
10
+ # Security (MCP servers)
11
+
12
+ - Treat tool **arguments** as **untrusted**. Validate with schemas; canonicalize paths/URLs.
13
+ - Minimize capabilities: no default "read any file" / "fetch any URL" without AC and allowlists.
14
+ - Secrets: env/secret manager only; redact in logs and tool results (`mcp-auth-secrets`).
15
+ - Least privilege: each tool gets the smallest capability adapter it needs — no ambient `process.env` dumps.
16
+
17
+ ## Path traversal (FAIL patterns)
18
+
19
+ - Resolve with `path.resolve` (or equivalent) then require the result stays under an approved root (`path.relative` must not start with `..`).
20
+ - Deny `../`, encoded variants (`%2e%2e`), and null-byte tricks before FS access.
21
+ - Follow symlinks only if the **final** realpath is still inside the root — otherwise reject.
22
+ - Unit shapes: `tool.rejectsPathTraversal`, `tool.rejectsSymlinkEscape`, `tool.acceptsInRoot`.
23
+
24
+ ## SSRF / outbound URL (FAIL patterns)
25
+
26
+ When tools fetch URLs:
27
+
28
+ - Allowlist hosts (or deny by default); block metadata IP `169.254.169.254`, link-local (`169.254.0.0/16`), loopback when not explicitly local-dev, and private ranges unless AC says otherwise.
29
+ - Do not follow redirects to a host outside the allowlist; re-validate after each hop.
30
+ - Prefer literal IPs from a resolved allowlist over trusting DNS alone when policy requires it.
31
+ - Unit shapes: `tool.deniesMetadataIp`, `tool.deniesBlockedHost`, `tool.allowsAllowlistedHost`.
32
+
33
+ ## Prompt injection and untrusted content
34
+
35
+ - Tool **descriptions** and **results** must not instruct the model to ignore safety; handlers must not execute model-supplied shell without an explicit, reviewed design.
36
+ - Treat **retrieved** tool/resource/prompt content (and any fetched remote payload) as **untrusted data**, not as authority:
37
+ - It must **not** expand tool capabilities, change auth/scopes, or trigger shell/network/FS side effects merely because the content contains instructions.
38
+ - Handlers decide actions from validated args + trusted request context only — never from natural-language directives inside resource bodies or prior tool output.
39
+ - Do not echo secrets found in untrusted content into logs or subsequent tool results.
40
+
41
+ ## Forbidden
42
+
43
+ - Shipping live credentials in examples or fixtures.
44
+ - Echoing `process.env` or Authorization headers into tool output.
45
+ - Fail-open auth when remote transport is enabled.
46
+ - Broad "run arbitrary command" tools without explicit AC and sandboxing.
47
+ - Letting tool/resource text escalate privileges or bypass schema/auth checks.
48
+
49
+ ## Agents
50
+
51
+ - `security-reviewer` on tool/auth/config/capability changes; then `post-change-test`.
52
+ - Phase 1: feature-developer must not skip schema validation to "move faster".
@@ -0,0 +1,20 @@
1
+ ---
2
+ description: Technical retrospective facilitator (on-demand /technical-retro)
3
+ paths:
4
+ - .cursor/team/**/*
5
+ - .claude/team/**/*
6
+ ---
7
+
8
+ <!-- shared-core: review/technical-retro.md -->
9
+
10
+ # Техническое ретро — rule alias
11
+
12
+ Полный сценарий (включая блок **«Работа агентов»** для slug из team tasks) — в slash-команде:
13
+
14
+ **`commands/technical-retro.md`** → `/technical-retro`
15
+
16
+ Используй rule только если command недоступен. Не дублируй содержимое command в ответе — следуй command-файлу и skill `technical-retro`.
17
+
18
+ ## Stack notes
19
+
20
+ - **Phase 1:** skill `technical-retro` is not shipped — follow `commands/technical-retro.md` only; do not fail if the skill is absent (Phase 2 may add the skill).
@@ -0,0 +1,3 @@
1
+ # UI and accessibility
2
+
3
+ N/A — TypeScript MCP server preset. No UI/a11y rules or accessibility-reviewer agent.
@@ -0,0 +1,12 @@
1
+ # Skills (mcp-ts Phase 1)
2
+
3
+ | Skill | Use |
4
+ |-------|-----|
5
+ | `feature-delivery` | End-to-end MCP feature flow |
6
+ | `unit-testing` | Schema/handler unit tests |
7
+ | `code-review` | Diff review checklist |
8
+ | `debug-investigation` | Bug investigation |
9
+
10
+ Phase 2 may add `ci-investigation`, `technical-retro`, `write-adr`, `mcp-contract-testing` skills.
11
+
12
+ Until then: `/technical-retro` uses `commands/technical-retro.md` (no skill required); review-only uses skill `code-review` on the parent (no `code-reviewer` agent).
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: code-review
3
+ description: Reviews MCP TypeScript diffs for boundaries, schema contracts, capability scope, and secrets. Use for MR review or when code-review workflow is requested.
4
+ ---
5
+
6
+ # Code review (mcp-ts)
7
+
8
+ 1. Follow `code-review-mr.mdc`, `mcp-server-boundaries.mdc`, `mcp-tool-design.mdc`, `security-mcp.mdc`.
9
+ 2. Flag monolithic entry files, schema/protocol mismatches, unscopeed capabilities, secret leakage.
10
+ 3. Phase 1: security-reviewer covers threat model; no separate `code-reviewer` agent yet — parent may apply this skill directly.
@@ -0,0 +1,11 @@
1
+ ---
2
+ name: debug-investigation
3
+ description: Investigates MCP server bugs with runtime evidence — schema failures, handler errors, transport startup. Use for failing tests or incorrect tool behavior.
4
+ ---
5
+
6
+ # Debug investigation (mcp-ts)
7
+
8
+ 1. Reproduce with unit/contract fixtures before changing code.
9
+ 2. Check schema validation vs handler logic vs registration wiring.
10
+ 3. Prefer repository tests over ad-hoc Inspector-only claims.
11
+ 4. Load `anti-sycophancy-discipline` — report what was verified.
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: feature-delivery
3
+ description: Delivers TypeScript MCP server features end-to-end across contracts, schemas, handlers, registration, tests, and package validation. Use when implementing or extending a feature, especially through /task or feature-developer.
4
+ ---
5
+
6
+ # Feature Delivery (mcp-ts)
7
+
8
+ 1. Read brief, AC, and decomposition.
9
+ 2. Follow `feature-delivery-workflow.mdc` + `reference-features.mdc`: contract → schema → handler → register → unit/contract tests → package validation.
10
+ 3. Keep transport/lifecycle in the entry module; tools stay in registration modules.
11
+ 4. After TS edits: **invoke** `post-change-test.mdc` (+ `mcp-ts-tooling.mdc`).
12
+
13
+ ## Do / Don't
14
+
15
+ - **Do** Zod-first authoring with JSON Schema-compatible protocol contracts.
16
+ - **Don't** invent SDK APIs; use VERIFY markers / Context7.
17
+ - **Don't** use Playwright, XCUITest, Next lint, or Go tools as this stack's gate.
18
+
19
+ ## Scope discipline
20
+
21
+ Implement only the current AC / decomposition task. See `feature-developer` → **Zero improvisation**.
22
+
23
+ ## Handoff
24
+
25
+ Summarize by layer + validation. Update `.cursor/team/tasks/<slug>/status.json`.
26
+
27
+ ## Design guidance
28
+
29
+ - Load `design-guidance` (rule stem) when assessing structure, smells, or pattern fit.
@@ -0,0 +1,16 @@
1
+ ---
2
+ name: unit-testing
3
+ description: Plans and writes unit tests for MCP schemas and handlers using the repository test runner. Use for schema/handler coverage and fixing failing unit tests.
4
+ ---
5
+
6
+ # Unit testing (mcp-ts)
7
+
8
+ 1. Prefer table-driven tests for schema reject/accept and handler outcomes.
9
+ 2. Fake FS/network capabilities — no live MCP client required for unit scope.
10
+ 3. Follow `tests-unit.mdc` and `mcp-contract-testing.mdc`.
11
+ 4. Discover runner via `mcp-ts-tooling` (Vitest/Jest/node:test).
12
+
13
+ ## Out of scope (Phase 1)
14
+
15
+ - Dedicated `contract-test-*` agents (Phase 2).
16
+ - Browser e2e (Playwright) — forbidden.
@@ -0,0 +1,17 @@
1
+ # Team artifacts (mcp-ts)
2
+
3
+ | Path | Purpose |
4
+ |------|---------|
5
+ | `tasks/<slug>/` | Pipeline artifacts (`brief.md`, `status.json`, …) |
6
+ | `fixtures/` | Example pipelines for dogfood |
7
+ | `conventions.md` | Living gotchas (consumer-owned) |
8
+
9
+ Phase 1 agents: see `agents/README.md`.
10
+
11
+ ## Fixture policy (Phase 1)
12
+
13
+ `team/fixtures/*.json` may list in `skipped[]` **only** agents that exist in the Phase 1 roster:
14
+
15
+ `task-router`, `task-analyst`, `solution-architect`, `feature-developer`, `build-verifier`, `security-reviewer`.
16
+
17
+ Do **not** name Phase 2 agents (`contract-test-*`, `debugger`, Playwright stems, etc.) in fixture JSON — even as skips. Defer those until the agents ship.
@@ -0,0 +1,14 @@
1
+ # Team conventions (mcp-ts)
2
+
3
+ Fill after init with living gotchas for this MCP server repo.
4
+
5
+ ## Suggested topics
6
+
7
+ - Package manager + test/typecheck scripts actually used
8
+ - SDK version pin and VERIFY notes
9
+ - stdio entry / `bin` packaging
10
+ - Capability allowlists (FS roots, outbound hosts)
11
+
12
+ ## Fixture policy
13
+
14
+ Phase 1 fixtures: `skipped[]` may name only Phase 1 roster agents (see `team/README.md`).
@@ -0,0 +1,32 @@
1
+ {
2
+ "slug": "example-schema-bugfix",
3
+ "intent": "bugfix",
4
+ "profile": "standard",
5
+ "summary": "Fix schema validation rejecting valid tool input",
6
+ "steps": [
7
+ {
8
+ "agent": "task-analyst",
9
+ "label": "Reproduce + AC"
10
+ },
11
+ {
12
+ "agent": "feature-developer",
13
+ "label": "Fix schema/handler + tests"
14
+ },
15
+ {
16
+ "agent": "build-verifier",
17
+ "label": "typecheck + tests"
18
+ }
19
+ ],
20
+ "humanGates": [],
21
+ "autoChain": true,
22
+ "skipped": [
23
+ {
24
+ "agent": "security-reviewer",
25
+ "reason": "Proven schema/style-only bugfix — no auth/**, secrets, or FS/net capability change (document skip; otherwise route security-reviewer)"
26
+ },
27
+ {
28
+ "agent": "solution-architect",
29
+ "reason": "Localized schema bugfix"
30
+ }
31
+ ]
32
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "slug": "example-add-tool-full",
3
+ "intent": "feature",
4
+ "profile": "full",
5
+ "summary": "Add MCP tool with schema, handler, registration, and tests",
6
+ "steps": [
7
+ {
8
+ "agent": "task-analyst",
9
+ "label": "Brief + decomposition"
10
+ },
11
+ {
12
+ "agent": "feature-developer",
13
+ "label": "contract→schema→handler→register→test→package"
14
+ },
15
+ {
16
+ "agent": "build-verifier",
17
+ "label": "typecheck + tests"
18
+ },
19
+ {
20
+ "agent": "security-reviewer",
21
+ "label": "Capability / secrets review",
22
+ "model": "strong"
23
+ }
24
+ ],
25
+ "humanGates": ["after:task-analyst"],
26
+ "autoChain": true,
27
+ "skipped": [
28
+ {
29
+ "agent": "solution-architect",
30
+ "reason": "Straightforward tool add; architecture spike not required"
31
+ }
32
+ ]
33
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "slug": "example-add-tool-light",
3
+ "intent": "feature",
4
+ "profile": "light",
5
+ "summary": "Add a single MCP tool with explicit AC",
6
+ "steps": [
7
+ {
8
+ "agent": "feature-developer",
9
+ "label": "Implement tool schema/handler/register",
10
+ "model": "cheap"
11
+ },
12
+ {
13
+ "agent": "build-verifier",
14
+ "label": "typecheck + tests",
15
+ "model": "cheap"
16
+ }
17
+ ],
18
+ "humanGates": [],
19
+ "autoChain": true,
20
+ "skipped": [
21
+ {
22
+ "agent": "task-analyst",
23
+ "reason": "Explicit AC and single-tool scope"
24
+ },
25
+ {
26
+ "agent": "security-reviewer",
27
+ "reason": "Light profile valid only with no FS/net/auth expansion — otherwise use standard/full and include security-reviewer"
28
+ },
29
+ {
30
+ "agent": "solution-architect",
31
+ "reason": "Light profile — no architecture spike"
32
+ }
33
+ ]
34
+ }
@@ -17,7 +17,8 @@ paths:
17
17
 
18
18
  - `next` must not require iOS-only agents/tooling (`xcuitest-*`, `xcodebuild` as required handoff, Keychain-only rules).
19
19
  - `ios-swift` must not ship Playwright handoffs or Next lint recipes as required commands.
20
- - `go` / `java` must not ship Playwright, XCUITest, Next lint recipes, or `xcodebuild`/`SwiftLint` as required handoffs.
20
+ - `go` / `java` / `mcp-ts` must not ship Playwright, XCUITest, Next lint recipes, or `xcodebuild`/`SwiftLint` as required handoffs.
21
+ - `mcp-ts` must not ship Go tool commands (`go test`, `go vet`, `golangci-lint`) or `integration-test-*` agents as required delivery gates.
21
22
  - Shared core must not embed stack paths (`app/src/**`, `Features/**`, `playwright`, `xcodebuild`).
22
23
 
23
24
  ## Forbidden in ios-swift hooks/agents (FAIL)
@@ -46,6 +47,18 @@ Shared backend-stack bans (both `go` and `java`):
46
47
 
47
48
  Required instead: `integration-test-*`; build-verifier / `post-change-test` plus stack tooling — `go-tooling` (`go test`, `go vet`) or `java-tooling` (`mvn test` / `./gradlew test`).
48
49
 
50
+ ## Forbidden in mcp-ts hooks/agents (FAIL)
51
+
52
+ Same UI/mobile bans as backend stacks, plus:
53
+
54
+ - `playwright-test-`, `playwright-agents`, `playwright-e2e`, `user-playwright`, `app/__tests__/e2e`
55
+ - Positive yarn recipes `lint:js` / `lint:css` as required gates
56
+ - `xcuitest-test-`, `xcodebuild`, `SwiftLint` as required handoffs
57
+ - Go tool commands as required MCP delivery gates: `go test`, `go vet`, `golangci-lint`
58
+ - Agent files: `playwright-test-*`, `xcuitest-test-*`, `integration-test-*`, `accessibility-reviewer`
59
+
60
+ Required instead: package-manager–discovered typecheck/test (`mcp-ts-tooling`, `post-change-test`); Phase 1 gates `build-verifier` + `security-reviewer`.
61
+
49
62
  ## Soft / document
50
63
 
51
64
  - Mentioning the other stack in **docs** comparing presets is OK.
@@ -53,4 +66,4 @@ Required instead: `integration-test-*`; build-verifier / `post-change-test` plus
53
66
 
54
67
  ## Chain fork
55
68
 
56
- `hooks/chain-team-phases.sh` must differ **byte-wise** pairwise among `next`, `ios-swift`, `go`, and `java` (per platform).
69
+ `hooks/chain-team-phases.sh` must differ **byte-wise** pairwise among `next`, `ios-swift`, `go`, `java`, and `mcp-ts` (per platform).
@@ -21,6 +21,7 @@ Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
21
21
  | `ios-swift` | `presets/cursor/ios-swift/rules/*.mdc` | `presets/claude/ios-swift/rules/<topic>/` | Keep in `claude/ios-swift/rules/README.md` |
22
22
  | `go` | `presets/cursor/go/rules/*.mdc` | `presets/claude/go/rules/<topic>/` | Keep in `claude/go/rules/README.md` |
23
23
  | `java` | `presets/cursor/java/rules/*.mdc` | `presets/claude/java/rules/<topic>/` | Keep in `claude/java/rules/README.md` |
24
+ | `mcp-ts` | `presets/cursor/mcp-ts/rules/*.mdc` | `presets/claude/mcp-ts/rules/<topic>/` | Keep in `claude/mcp-ts/rules/README.md` |
24
25
 
25
26
  ## Same-PR checklist
26
27
 
@@ -40,5 +41,6 @@ Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
40
41
  - **ios-swift:** missing Claude twin for a changed Cursor rule → **FAIL**.
41
42
  - **go:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift; mapping table required).
42
43
  - **java:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift / go; mapping table required).
44
+ - **mcp-ts:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift / go / java; mapping table required).
43
45
 
44
46
  Dogfood: sync packages → root `.cursor/` after Cursor SoT changes (not the reverse). Use `packages/ai-rules/scripts/sync-dogfood-cursor.sh`.
@@ -17,7 +17,8 @@ alwaysApply: false
17
17
 
18
18
  - `next` must not require iOS-only agents/tooling (`xcuitest-*`, `xcodebuild` as required handoff, Keychain-only rules).
19
19
  - `ios-swift` must not ship Playwright handoffs or Next lint recipes as required commands.
20
- - `go` / `java` must not ship Playwright, XCUITest, Next lint recipes, or `xcodebuild`/`SwiftLint` as required handoffs.
20
+ - `go` / `java` / `mcp-ts` must not ship Playwright, XCUITest, Next lint recipes, or `xcodebuild`/`SwiftLint` as required handoffs.
21
+ - `mcp-ts` must not ship Go tool commands (`go test`, `go vet`, `golangci-lint`) or `integration-test-*` agents as required delivery gates.
21
22
  - Shared core must not embed stack paths (`app/src/**`, `Features/**`, `playwright`, `xcodebuild`).
22
23
 
23
24
  ## Forbidden in ios-swift hooks/agents (FAIL)
@@ -46,6 +47,18 @@ Shared backend-stack bans (both `go` and `java`):
46
47
 
47
48
  Required instead: `integration-test-*`; build-verifier / `post-change-test` plus stack tooling — `go-tooling` (`go test`, `go vet`) or `java-tooling` (`mvn test` / `./gradlew test`).
48
49
 
50
+ ## Forbidden in mcp-ts hooks/agents (FAIL)
51
+
52
+ Same UI/mobile bans as backend stacks, plus:
53
+
54
+ - `playwright-test-`, `playwright-agents`, `playwright-e2e`, `user-playwright`, `app/__tests__/e2e`
55
+ - Positive yarn recipes `lint:js` / `lint:css` as required gates
56
+ - `xcuitest-test-`, `xcodebuild`, `SwiftLint` as required handoffs
57
+ - Go tool commands as required MCP delivery gates: `go test`, `go vet`, `golangci-lint`
58
+ - Agent files: `playwright-test-*`, `xcuitest-test-*`, `integration-test-*`, `accessibility-reviewer`
59
+
60
+ Required instead: package-manager–discovered typecheck/test (`mcp-ts-tooling`, `post-change-test`); Phase 1 gates `build-verifier` + `security-reviewer`.
61
+
49
62
  ## Soft / document
50
63
 
51
64
  - Mentioning the other stack in **docs** comparing presets is OK.
@@ -53,4 +66,4 @@ Required instead: `integration-test-*`; build-verifier / `post-change-test` plus
53
66
 
54
67
  ## Chain fork
55
68
 
56
- `hooks/chain-team-phases.sh` must differ **byte-wise** pairwise among `next`, `ios-swift`, `go`, and `java` (per platform).
69
+ `hooks/chain-team-phases.sh` must differ **byte-wise** pairwise among `next`, `ios-swift`, `go`, `java`, and `mcp-ts` (per platform).
@@ -21,6 +21,7 @@ Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
21
21
  | `ios-swift` | `presets/cursor/ios-swift/rules/*.mdc` | `presets/claude/ios-swift/rules/<topic>/` | Keep in `claude/ios-swift/rules/README.md` |
22
22
  | `go` | `presets/cursor/go/rules/*.mdc` | `presets/claude/go/rules/<topic>/` | Keep in `claude/go/rules/README.md` |
23
23
  | `java` | `presets/cursor/java/rules/*.mdc` | `presets/claude/java/rules/<topic>/` | Keep in `claude/java/rules/README.md` |
24
+ | `mcp-ts` | `presets/cursor/mcp-ts/rules/*.mdc` | `presets/claude/mcp-ts/rules/<topic>/` | Keep in `claude/mcp-ts/rules/README.md` |
24
25
 
25
26
  ## Same-PR checklist
26
27
 
@@ -40,5 +41,6 @@ Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
40
41
  - **ios-swift:** missing Claude twin for a changed Cursor rule → **FAIL**.
41
42
  - **go:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift; mapping table required).
42
43
  - **java:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift / go; mapping table required).
44
+ - **mcp-ts:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift / go / java; mapping table required).
43
45
 
44
46
  Dogfood: sync packages → root `.cursor/` after Cursor SoT changes (not the reverse). Use `packages/ai-rules/scripts/sync-dogfood-cursor.sh`.
@@ -17,7 +17,8 @@ alwaysApply: false
17
17
 
18
18
  - `next` must not require iOS-only agents/tooling (`xcuitest-*`, `xcodebuild` as required handoff, Keychain-only rules).
19
19
  - `ios-swift` must not ship Playwright handoffs or Next lint recipes as required commands.
20
- - `go` / `java` must not ship Playwright, XCUITest, Next lint recipes, or `xcodebuild`/`SwiftLint` as required handoffs.
20
+ - `go` / `java` / `mcp-ts` must not ship Playwright, XCUITest, Next lint recipes, or `xcodebuild`/`SwiftLint` as required handoffs.
21
+ - `mcp-ts` must not ship Go tool commands (`go test`, `go vet`, `golangci-lint`) or `integration-test-*` agents as required delivery gates.
21
22
  - Shared core must not embed stack paths (`app/src/**`, `Features/**`, `playwright`, `xcodebuild`).
22
23
 
23
24
  ## Forbidden in ios-swift hooks/agents (FAIL)
@@ -46,6 +47,18 @@ Shared backend-stack bans (both `go` and `java`):
46
47
 
47
48
  Required instead: `integration-test-*`; build-verifier / `post-change-test` plus stack tooling — `go-tooling` (`go test`, `go vet`) or `java-tooling` (`mvn test` / `./gradlew test`).
48
49
 
50
+ ## Forbidden in mcp-ts hooks/agents (FAIL)
51
+
52
+ Same UI/mobile bans as backend stacks, plus:
53
+
54
+ - `playwright-test-`, `playwright-agents`, `playwright-e2e`, `user-playwright`, `app/__tests__/e2e`
55
+ - Positive yarn recipes `lint:js` / `lint:css` as required gates
56
+ - `xcuitest-test-`, `xcodebuild`, `SwiftLint` as required handoffs
57
+ - Go tool commands as required MCP delivery gates: `go test`, `go vet`, `golangci-lint`
58
+ - Agent files: `playwright-test-*`, `xcuitest-test-*`, `integration-test-*`, `accessibility-reviewer`
59
+
60
+ Required instead: package-manager–discovered typecheck/test (`mcp-ts-tooling`, `post-change-test`); Phase 1 gates `build-verifier` + `security-reviewer`.
61
+
49
62
  ## Soft / document
50
63
 
51
64
  - Mentioning the other stack in **docs** comparing presets is OK.
@@ -53,4 +66,4 @@ Required instead: `integration-test-*`; build-verifier / `post-change-test` plus
53
66
 
54
67
  ## Chain fork
55
68
 
56
- `hooks/chain-team-phases.sh` must differ **byte-wise** pairwise among `next`, `ios-swift`, `go`, and `java` (per platform).
69
+ `hooks/chain-team-phases.sh` must differ **byte-wise** pairwise among `next`, `ios-swift`, `go`, `java`, and `mcp-ts` (per platform).
@@ -21,6 +21,7 @@ Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
21
21
  | `ios-swift` | `presets/cursor/ios-swift/rules/*.mdc` | `presets/claude/ios-swift/rules/<topic>/` | Keep in `claude/ios-swift/rules/README.md` |
22
22
  | `go` | `presets/cursor/go/rules/*.mdc` | `presets/claude/go/rules/<topic>/` | Keep in `claude/go/rules/README.md` |
23
23
  | `java` | `presets/cursor/java/rules/*.mdc` | `presets/claude/java/rules/<topic>/` | Keep in `claude/java/rules/README.md` |
24
+ | `mcp-ts` | `presets/cursor/mcp-ts/rules/*.mdc` | `presets/claude/mcp-ts/rules/<topic>/` | Keep in `claude/mcp-ts/rules/README.md` |
24
25
 
25
26
  ## Same-PR checklist
26
27
 
@@ -40,5 +41,6 @@ Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
40
41
  - **ios-swift:** missing Claude twin for a changed Cursor rule → **FAIL**.
41
42
  - **go:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift; mapping table required).
42
43
  - **java:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift / go; mapping table required).
44
+ - **mcp-ts:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift / go / java; mapping table required).
43
45
 
44
46
  Dogfood: sync packages → root `.cursor/` after Cursor SoT changes (not the reverse). Use `packages/ai-rules/scripts/sync-dogfood-cursor.sh`.
@@ -17,7 +17,8 @@ alwaysApply: false
17
17
 
18
18
  - `next` must not require iOS-only agents/tooling (`xcuitest-*`, `xcodebuild` as required handoff, Keychain-only rules).
19
19
  - `ios-swift` must not ship Playwright handoffs or Next lint recipes as required commands.
20
- - `go` / `java` must not ship Playwright, XCUITest, Next lint recipes, or `xcodebuild`/`SwiftLint` as required handoffs.
20
+ - `go` / `java` / `mcp-ts` must not ship Playwright, XCUITest, Next lint recipes, or `xcodebuild`/`SwiftLint` as required handoffs.
21
+ - `mcp-ts` must not ship Go tool commands (`go test`, `go vet`, `golangci-lint`) or `integration-test-*` agents as required delivery gates.
21
22
  - Shared core must not embed stack paths (`app/src/**`, `Features/**`, `playwright`, `xcodebuild`).
22
23
 
23
24
  ## Forbidden in ios-swift hooks/agents (FAIL)
@@ -46,6 +47,18 @@ Shared backend-stack bans (both `go` and `java`):
46
47
 
47
48
  Required instead: `integration-test-*`; build-verifier / `post-change-test` plus stack tooling — `go-tooling` (`go test`, `go vet`) or `java-tooling` (`mvn test` / `./gradlew test`).
48
49
 
50
+ ## Forbidden in mcp-ts hooks/agents (FAIL)
51
+
52
+ Same UI/mobile bans as backend stacks, plus:
53
+
54
+ - `playwright-test-`, `playwright-agents`, `playwright-e2e`, `user-playwright`, `app/__tests__/e2e`
55
+ - Positive yarn recipes `lint:js` / `lint:css` as required gates
56
+ - `xcuitest-test-`, `xcodebuild`, `SwiftLint` as required handoffs
57
+ - Go tool commands as required MCP delivery gates: `go test`, `go vet`, `golangci-lint`
58
+ - Agent files: `playwright-test-*`, `xcuitest-test-*`, `integration-test-*`, `accessibility-reviewer`
59
+
60
+ Required instead: package-manager–discovered typecheck/test (`mcp-ts-tooling`, `post-change-test`); Phase 1 gates `build-verifier` + `security-reviewer`.
61
+
49
62
  ## Soft / document
50
63
 
51
64
  - Mentioning the other stack in **docs** comparing presets is OK.
@@ -53,4 +66,4 @@ Required instead: `integration-test-*`; build-verifier / `post-change-test` plus
53
66
 
54
67
  ## Chain fork
55
68
 
56
- `hooks/chain-team-phases.sh` must differ **byte-wise** pairwise among `next`, `ios-swift`, `go`, and `java` (per platform).
69
+ `hooks/chain-team-phases.sh` must differ **byte-wise** pairwise among `next`, `ios-swift`, `go`, `java`, and `mcp-ts` (per platform).
@@ -21,6 +21,7 @@ Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
21
21
  | `ios-swift` | `presets/cursor/ios-swift/rules/*.mdc` | `presets/claude/ios-swift/rules/<topic>/` | Keep in `claude/ios-swift/rules/README.md` |
22
22
  | `go` | `presets/cursor/go/rules/*.mdc` | `presets/claude/go/rules/<topic>/` | Keep in `claude/go/rules/README.md` |
23
23
  | `java` | `presets/cursor/java/rules/*.mdc` | `presets/claude/java/rules/<topic>/` | Keep in `claude/java/rules/README.md` |
24
+ | `mcp-ts` | `presets/cursor/mcp-ts/rules/*.mdc` | `presets/claude/mcp-ts/rules/<topic>/` | Keep in `claude/mcp-ts/rules/README.md` |
24
25
 
25
26
  ## Same-PR checklist
26
27
 
@@ -40,5 +41,6 @@ Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
40
41
  - **ios-swift:** missing Claude twin for a changed Cursor rule → **FAIL**.
41
42
  - **go:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift; mapping table required).
42
43
  - **java:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift / go; mapping table required).
44
+ - **mcp-ts:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift / go / java; mapping table required).
43
45
 
44
46
  Dogfood: sync packages → root `.cursor/` after Cursor SoT changes (not the reverse). Use `packages/ai-rules/scripts/sync-dogfood-cursor.sh`.
@@ -0,0 +1,25 @@
1
+ # TypeScript MCP stack — Cursor agent team
2
+
3
+ **Repo-root agents:** see [`AGENTS.md`](../../AGENTS.md) at the project root (cross-tool setup, commands, security, living conventions pointers).
4
+
5
+ | Задача | Куда смотреть |
6
+ |--------|----------------|
7
+ | Новая work-задача | `/task` → `commands/task.md` + `agent-team-orchestrator.mdc` |
8
+ | Фича end-to-end | skill `feature-delivery` + `feature-delivery-workflow.mdc` |
9
+ | Стек и границы | `mcp-ts-app-core.mdc`, `mcp-server-boundaries.mdc` |
10
+ | После правок TS | `post-change-test.mdc` (+ `mcp-ts-tooling.mdc`) |
11
+ | Tool/schema design | `mcp-tool-design.mdc`, `mcp-contract-testing.mdc` |
12
+ | Code review | skill `code-review` + `code-review-mr.mdc` |
13
+ | Security | `security-mcp.mdc` + agent `security-reviewer` |
14
+
15
+ ## Install
16
+
17
+ ```bash
18
+ npx @bonesofspring/ai-rules init cursor --preset mcp-ts
19
+ ```
20
+
21
+ ## Dogfood (Phase 1)
22
+
23
+ 1. `/task` — add a tool (schema → handler → register → test → package).
24
+ 2. Schema validation bug — unit tests + contract fixtures.
25
+ 3. Secrets / capability review — security-reviewer + `security-mcp`.
@@ -0,0 +1,9 @@
1
+ # Bugbot priorities — TypeScript MCP
2
+
3
+ 1. Monolithic `index.ts` mixing transport, registration, and handler logic.
4
+ 2. Tool schemas: Zod authoring vs JSON Schema protocol contract mismatch; inventing SDK APIs.
5
+ 3. Handlers accessing ambient secrets, arbitrary FS, or unbounded network.
6
+ 4. Registration without validation; duplicated schemas; unsafe error surfaces leaking internals.
7
+ 5. Missing unit/contract tests for schema + handler seams.
8
+ 6. Shipping active local server-under-dev in consumer `mcp.json` (Context7 only).
9
+ 7. Ignore Playwright / XCUITest / Next lint / Go tools as required gates — not this stack.