@mrciphersmith/keryx 0.2.96 → 0.2.98

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 (165) hide show
  1. package/dist/cli.js +1615 -710
  2. package/dist/core.js +1 -1
  3. package/package.json +1 -1
  4. package/src/gdskills/bundled/rules/core/api-contracts.mdc +1 -0
  5. package/src/gdskills/bundled/rules/core/code-style-patterns.mdc +1 -0
  6. package/src/gdskills/bundled/rules/core/database-patterns.mdc +1 -0
  7. package/src/gdskills/bundled/rules/core/documentation-management.mdc +33 -38
  8. package/src/gdskills/bundled/rules/core/error-handling.mdc +1 -11
  9. package/src/gdskills/bundled/rules/core/execution-metrics.md +1 -2
  10. package/src/gdskills/bundled/rules/core/frontend-assistant.mdc +1 -0
  11. package/src/gdskills/bundled/rules/core/git-concurrency.mdc +101 -0
  12. package/src/gdskills/bundled/rules/core/implementation-plans.mdc +23 -11
  13. package/src/gdskills/bundled/rules/core/mobx-store-template.mdc +1 -0
  14. package/src/gdskills/bundled/rules/core/nestjs-dto.mdc +1 -0
  15. package/src/gdskills/bundled/rules/core/playwright-testing.mdc +1 -0
  16. package/src/gdskills/bundled/rules/core/requirements-management.mdc +15 -11
  17. package/src/gdskills/bundled/rules/core/rule-management-workflow.mdc +29 -14
  18. package/src/gdskills/bundled/rules/core/shared-definitions.mdc +1 -1
  19. package/src/gdskills/bundled/rules/core/skill-lifecycle.mdc +9 -5
  20. package/src/gdskills/bundled/rules/core/skills-storage-workflow.mdc +59 -16
  21. package/src/gdskills/bundled/rules/core/storybook-guidelines.mdc +1 -0
  22. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.codex.md +48 -71
  23. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.cursor.md +48 -71
  24. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.md +48 -71
  25. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.opencode.md +48 -71
  26. package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.zed.md +48 -71
  27. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.codex.md +4 -4
  28. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.cursor.md +4 -4
  29. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.md +4 -4
  30. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.opencode.md +4 -4
  31. package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.zed.md +4 -4
  32. package/src/gdskills/bundled/skills/orchestration/context-collector/orchestrator-prompt.md +2 -2
  33. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.codex.md +12 -22
  34. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.cursor.md +12 -22
  35. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.detail.md +12 -22
  36. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.md +12 -22
  37. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.opencode.md +12 -22
  38. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.zed.md +12 -22
  39. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/analysis-request.md +2 -2
  40. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/analysis-request.template.md +1 -1
  41. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/input-contract.schema.json +4 -4
  42. package/src/gdskills/bundled/skills/orchestration/feature-analyzer/orchestrator-prompt.md +2 -2
  43. package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.codex.md +2 -2
  44. package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.cursor.md +2 -2
  45. package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.md +2 -2
  46. package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/SKILL.md +46 -4
  47. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.codex.md +2 -2
  48. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.cursor.md +2 -2
  49. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.md +2 -2
  50. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.opencode.md +2 -2
  51. package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.zed.md +2 -2
  52. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.codex.md +3 -3
  53. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.cursor.md +3 -3
  54. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.md +3 -3
  55. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.opencode.md +3 -3
  56. package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.zed.md +3 -3
  57. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.codex.md +65 -23
  58. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.cursor.md +65 -23
  59. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.md +65 -23
  60. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.opencode.md +65 -23
  61. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.zed.md +65 -23
  62. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.codex.md +19 -10
  63. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.cursor.md +19 -10
  64. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.md +19 -10
  65. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.opencode.md +19 -10
  66. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.zed.md +19 -10
  67. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.codex.md +1 -1
  68. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.cursor.md +1 -1
  69. package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.md +1 -1
  70. package/src/gdskills/bundled/skills/planning/interview/SKILL.codex.md +1 -1
  71. package/src/gdskills/bundled/skills/planning/interview/SKILL.cursor.md +1 -1
  72. package/src/gdskills/bundled/skills/planning/interview/SKILL.md +1 -1
  73. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.codex.md +1 -1
  74. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.cursor.md +1 -1
  75. package/src/gdskills/bundled/skills/planning/interviewer/SKILL.md +1 -1
  76. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.codex.md +7 -7
  77. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.cursor.md +7 -7
  78. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.md +7 -7
  79. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.opencode.md +7 -7
  80. package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.zed.md +7 -7
  81. package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.codex.md +1 -1
  82. package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.cursor.md +1 -1
  83. package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.md +1 -1
  84. package/src/gdskills/bundled/skills/platform/hookify/SKILL.codex.md +1 -1
  85. package/src/gdskills/bundled/skills/platform/hookify/SKILL.cursor.md +1 -1
  86. package/src/gdskills/bundled/skills/platform/hookify/SKILL.md +1 -1
  87. package/src/gdskills/bundled/skills/quality/changelog/SKILL.codex.md +1 -1
  88. package/src/gdskills/bundled/skills/quality/changelog/SKILL.cursor.md +1 -1
  89. package/src/gdskills/bundled/skills/quality/changelog/SKILL.md +1 -1
  90. package/src/gdskills/bundled/skills/quality/commit/SKILL.codex.md +2 -2
  91. package/src/gdskills/bundled/skills/quality/commit/SKILL.cursor.md +2 -2
  92. package/src/gdskills/bundled/skills/quality/commit/SKILL.md +2 -2
  93. package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.codex.md +1 -1
  94. package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.cursor.md +1 -1
  95. package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.md +1 -1
  96. package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.codex.md +1 -1
  97. package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.cursor.md +1 -1
  98. package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.md +1 -1
  99. package/src/gdskills/bundled/skills/quality/deploy/SKILL.codex.md +1 -1
  100. package/src/gdskills/bundled/skills/quality/deploy/SKILL.cursor.md +1 -1
  101. package/src/gdskills/bundled/skills/quality/deploy/SKILL.md +1 -1
  102. package/src/gdskills/bundled/skills/quality/perf-check/SKILL.codex.md +1 -1
  103. package/src/gdskills/bundled/skills/quality/perf-check/SKILL.cursor.md +1 -1
  104. package/src/gdskills/bundled/skills/quality/perf-check/SKILL.md +1 -1
  105. package/src/gdskills/bundled/skills/quality/pr/SKILL.codex.md +1 -1
  106. package/src/gdskills/bundled/skills/quality/pr/SKILL.cursor.md +1 -1
  107. package/src/gdskills/bundled/skills/quality/pr/SKILL.md +1 -1
  108. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.codex.md +2 -2
  109. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.cursor.md +2 -2
  110. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.md +2 -2
  111. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.opencode.md +2 -2
  112. package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.zed.md +2 -2
  113. package/src/gdskills/bundled/skills/quality/push/SKILL.codex.md +1 -1
  114. package/src/gdskills/bundled/skills/quality/push/SKILL.cursor.md +1 -1
  115. package/src/gdskills/bundled/skills/quality/push/SKILL.md +1 -1
  116. package/src/gdskills/bundled/skills/quality/test-gen/SKILL.codex.md +7 -2
  117. package/src/gdskills/bundled/skills/quality/test-gen/SKILL.cursor.md +7 -2
  118. package/src/gdskills/bundled/skills/quality/test-gen/SKILL.md +7 -2
  119. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.codex.md +15 -9
  120. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.cursor.md +15 -9
  121. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.md +15 -9
  122. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.opencode.md +15 -9
  123. package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.zed.md +15 -9
  124. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.codex.md +2 -2
  125. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.cursor.md +2 -2
  126. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.md +2 -2
  127. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.opencode.md +2 -2
  128. package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.zed.md +2 -2
  129. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.codex.md +2 -2
  130. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.cursor.md +2 -2
  131. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.md +2 -2
  132. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.opencode.md +2 -2
  133. package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.zed.md +2 -2
  134. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.codex.md +2 -2
  135. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.cursor.md +2 -2
  136. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.md +2 -2
  137. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.opencode.md +2 -2
  138. package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.zed.md +2 -2
  139. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.codex.md +2 -2
  140. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.cursor.md +2 -2
  141. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.md +2 -2
  142. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.opencode.md +2 -2
  143. package/src/gdskills/bundled/skills/review/code-style-review/SKILL.zed.md +2 -2
  144. package/src/gdskills/bundled/skills/review/review-architecture/SKILL.md +2 -2
  145. package/src/gdskills/bundled/skills/review/review-backend/SKILL.md +3 -3
  146. package/src/gdskills/bundled/skills/review/review-clean-code/SKILL.md +2 -2
  147. package/src/gdskills/bundled/skills/review/review-core-boundaries/SKILL.md +1 -1
  148. package/src/gdskills/bundled/skills/review/review-flow-graph/SKILL.md +1 -1
  149. package/src/gdskills/bundled/skills/review/review-frontend/SKILL.md +2 -2
  150. package/src/gdskills/bundled/skills/review/review-frontend-conventions/SKILL.md +1 -1
  151. package/src/gdskills/bundled/skills/review/review-highload/SKILL.md +2 -2
  152. package/src/gdskills/bundled/skills/review/review-layout/SKILL.md +1 -1
  153. package/src/gdskills/bundled/skills/review/review-logic/SKILL.md +2 -2
  154. package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.md +40 -35
  155. package/src/gdskills/bundled/skills/review/review-orchestrator/input-contract.schema.json +1 -2
  156. package/src/gdskills/bundled/skills/review/review-orchestrator/review-context.schema.json +1 -5
  157. package/src/gdskills/bundled/skills/review/review-orchestrator/reviewer-input.schema.json +53 -9
  158. package/src/gdskills/bundled/skills/review/review-performance/SKILL.md +2 -2
  159. package/src/gdskills/bundled/skills/review/review-pr-feedback/SKILL.md +6 -6
  160. package/src/gdskills/bundled/skills/review/review-security-code/SKILL.md +2 -2
  161. package/src/gdskills/bundled/skills/review/review-style/SKILL.md +3 -3
  162. package/src/gdskills/bundled/skills/review/review-testing-practices/SKILL.md +1 -1
  163. package/src/gdskills/bundled/skills/review/review-verifier/SKILL.md +1 -1
  164. package/src/gdskills/bundled/rules/core/review-agent-profile.mdc +0 -49
  165. package/src/gdskills/bundled/rules/core/review-strict-profile.mdc +0 -48
package/dist/core.js CHANGED
@@ -23978,7 +23978,7 @@ ${filesToRead}
23978
23978
 
23979
23979
  ## Verification
23980
23980
 
23981
- - Current state: not verified.
23981
+ - Verification status: see \`verification.md\` (written by \`keryx skills verify\`).
23982
23982
  - Run: \`keryx skills verify ${moduleName}/${skillName}\`
23983
23983
  `;
23984
23984
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrciphersmith/keryx",
3
- "version": "0.2.96",
3
+ "version": "0.2.98",
4
4
  "description": "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  description: "API contract rules: OpenAPI-first design, semantic versioning, no breaking changes without major version bump, contract testing. Use when designing, modifying, or consuming HTTP APIs."
3
3
  alwaysApply: false
4
+ stack_requires: "http-server"
4
5
  ---
5
6
 
6
7
  # API Contracts
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  description: "Code style and architecture patterns for TypeScript, React, and MobX."
3
3
  alwaysApply: false
4
+ stack_requires: "react,mobx"
4
5
  ---
5
6
 
6
7
  # Code Style and Architecture Patterns
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  description: "Database access patterns: no N+1 queries, indexes before deploy, backward-compatible migrations, transaction discipline. Use when writing queries, migrations, or ORM models."
3
3
  alwaysApply: false
4
+ stack_requires: "sql"
4
5
  ---
5
6
 
6
7
  # Database Patterns
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "Manage project documentation in <PROJECT_DIR>/docs (default) or $GDMETAPRO_DOCS_ROOT with synchronized multilingual outputs."
2
+ description: "Manage project documentation in <PROJECT_DIR>/docs (default) or $GDMETAPRO_DOCS_ROOT. Language variants are opt-in, not mandatory."
3
3
  alwaysApply: false
4
4
  ---
5
5
 
@@ -11,16 +11,28 @@ Define how the agent creates and updates documentation under `<DOCS_ROOT>` (`<PR
11
11
  ## When To Apply
12
12
  Apply when the user asks to create or update documentation, plans, requirements, communication notes, reports, or review artifacts.
13
13
 
14
+ ## Requirements Packages
15
+ Anything under `docs/requirements/<name>/` (README, PRD, specification, and
16
+ their optional companions, including `implementation-plan.md`) follows
17
+ `requirements-package-standard.mdc`. Do not restate or diverge from that
18
+ layout here: no date-stamped subfolders, no mandatory `ru`/`en`/`ai` variants —
19
+ the `Version: x.y.z` field on each document is the versioning mechanism.
20
+
14
21
  ## Mandatory Behavior
15
22
  1. Ask for target location and folder name before writing any doc.
16
- 2. Use date-stamped folders; never overwrite previous doc sets.
17
- 3. Keep language variants synchronized.
23
+ 2. Do not date-stamp folders. Write into `<category>/<name>/` and update
24
+ documents in place, bumping their `Version` field where the category's
25
+ standard defines one (requirements packages always do).
26
+ 3. Default to `en` output. Add other language variants only when the user
27
+ explicitly asks for them, and keep any variants you do create synchronized.
18
28
  4. Update `<DOCS_ROOT>/README.md` after doc changes.
19
29
  5. Ask whether to apply changes (branch/commit/PR) after edits.
20
30
 
21
31
  ## Required Locations
22
32
  - Root: `<DOCS_ROOT>` (default: `<PROJECT_DIR>/docs`)
23
- - Standard pattern: `<DOCS_ROOT>/<category>/<name>-<YYYY-MM-DD>/`
33
+ - Standard pattern: `<DOCS_ROOT>/<category>/<name>/`
34
+ - Requirements packages: `<DOCS_ROOT>/requirements/<name>/` per
35
+ `requirements-package-standard.mdc` (no date folder).
24
36
 
25
37
  ## DOCS_ROOT Resolution
26
38
 
@@ -40,45 +52,27 @@ DOCS_ROOT="${GDMETAPRO_DOCS_ROOT:-$PROJECT_DIR/docs}"
40
52
 
41
53
  | Category | Path pattern | Description |
42
54
  |----------|-------------|-------------|
43
- | `requirements` | `docs/requirements/<name>/<YYYY-MM-DD>/` | Feature requirements (iterations grouped by name) |
44
- | `plans` | `docs/plans/<name>/<YYYY-MM-DD>/` | Standalone implementation plans |
45
- | `report` | `docs/report/<name>/<YYYY-MM-DD>/` | Standalone review/audit reports |
46
- | `review-testing` | `docs/review-testing/<name>/<YYYY-MM-DD>/` | QA and testing artifacts |
47
- | `communication` | `docs/communication/<name>/<YYYY-MM-DD>/` | Communication and context docs |
48
- | `analysis` | `docs/analysis/<name>/<YYYY-MM-DD>/` | Feature/branch analysis (see below) |
55
+ | `requirements` | `docs/requirements/<name>/` | See `requirements-package-standard.mdc`. |
56
+ | `plans` | `docs/plans/<name>/` | Standalone implementation plans not tied to a requirements package. A plan that belongs to one lives inside that package as `implementation-plan.md` instead — see `requirements-package-standard.mdc` and `implementation-plans.mdc`. |
57
+ | `report` | `docs/report/<name>/` | Standalone review/audit reports |
58
+ | `review-testing` | `docs/review-testing/<name>/` | QA and testing artifacts |
59
+ | `communication` | `docs/communication/<name>/` | Communication and context docs |
60
+ | `analysis` | `docs/analysis/<name>/` | Feature/branch analysis (see below) |
49
61
 
50
62
  ## Analysis Category Structure
51
63
 
52
64
  The `analysis` category is used by the `feature-analyzer` skill and any branch/feature analysis tasks.
53
65
 
54
66
  ```
55
- docs/analysis/<feature-name>/<YYYY-MM-DD>/
56
- report/
57
- ru/
58
- report.md
59
- en/
60
- report.md
61
- ai/
62
- report.md
63
- plans/
64
- ru/
65
- implementation-plan.md
66
- en/
67
- implementation-plan.md
68
- ai/
69
- implementation-plan.md
67
+ docs/analysis/<feature-name>/
68
+ report.md
69
+ implementation-plan.md
70
70
  ```
71
71
 
72
- - `report/` — detailed analysis of changes, ticket, cross-repo findings
73
- - `plans/` — actionable implementation plan derived from the analysis
74
- - Each subfolder contains `ru/`, `en/`, `ai/` language variants (all three are mandatory)
75
-
76
- ## Language Matrix
77
- - Requirements: `ru`, `en`, `ai`
78
- - Implementation plans: `ru`, `en`, `ai`
79
- - Communication docs: `ru`, `en`, `ai`
80
- - Analysis (`report/` + `plans/`): `ru`, `en`, `ai` (mandatory)
81
- - Other categories: follow explicit user request; default to at least `en`.
72
+ - `report.md` — detailed analysis of changes, ticket, cross-repo findings
73
+ - `implementation-plan.md` — actionable implementation plan derived from the analysis
74
+ - Add `ru`/`en`/`ai` variants only if the user explicitly asks for them; the
75
+ default is the single `en` files shown above.
82
76
 
83
77
  ## Naming Rules
84
78
  - Ask user for `<name>` first.
@@ -100,7 +94,8 @@ Standalone skill invocations continue to use `docs/analysis/`. Only orchestrator
100
94
  See `core/jobs-documentation.mdc` for the `jobs/` system.
101
95
 
102
96
  ## Prohibited
103
- - Single-language output when the category requires `ru+en+ai`.
104
- - Partial language updates.
97
+ - Date-stamped folders anywhere under `<DOCS_ROOT>`.
98
+ - Language variants the user did not ask for.
99
+ - Partial updates to language variants that do exist.
105
100
  - Writing docs outside the requested category path without confirmation.
106
- - Mixing `report/` and `plans/` content in the same file.
101
+ - Mixing `report`/`implementation-plan` content in the same file.
@@ -98,17 +98,7 @@ try {
98
98
  ```
99
99
 
100
100
  ### Rule 4: No Unhandled Promise Rejections
101
- Every `async` call chain must end with error handling. `Promise.all` rejections must be caught. Fire-and-forget patterns must use `.catch(logger.error)`.
102
-
103
- ```typescript
104
- // BAD
105
- Promise.all([fetchA(), fetchB()]); // unhandled rejection if either fails
106
-
107
- // GOOD
108
- const results = await Promise.allSettled([fetchA(), fetchB()]);
109
- const failures = results.filter(r => r.status === 'rejected');
110
- if (failures.length > 0) { /* handle */ }
111
- ```
101
+ See `async-patterns.mdc` Rule 4 ("No Unhandled Promise Rejections") for the full rule, examples, and rationale — it belongs there because it is fundamentally about promise/async control flow, not error typing.
112
102
 
113
103
  ### Rule 5: Propagate, Don't Wrap Blindly
114
104
  When catching and re-throwing, preserve the original error as `cause`:
@@ -38,8 +38,7 @@ gdwiki enrichment, or anything that writes files) MUST also save the report:
38
38
  - Otherwise → `.metaproject/data/<primary-module>/metrics/run-<ISO-timestamp>.md`
39
39
 
40
40
  Create the directory. Use a filesystem-safe timestamp (colons → `-`). Print the
41
- saved path under the table. This lets the post-commit hook and future runs find
42
- past reports.
41
+ saved path under the table. This lets future runs find past reports.
43
42
 
44
43
  ## Honesty rules (do not fabricate)
45
44
 
@@ -4,6 +4,7 @@ alwaysApply: false
4
4
  globs:
5
5
  - "src/**/*.ts"
6
6
  - "src/**/*.tsx"
7
+ stack_requires: "react,mobx"
7
8
  ---
8
9
 
9
10
  # Frontend Assistant Guidelines
@@ -0,0 +1,101 @@
1
+ ---
2
+ description: "Git concurrency rules: no git stash in a shared tree, explicit pathspecs instead of git add -A, git -C <absolute path> in worktrees, commit at task boundaries. Use when multiple agents or sessions share one checkout or work in parallel git worktrees."
3
+ alwaysApply: false
4
+ ---
5
+
6
+ # Git Concurrency
7
+
8
+ ## Purpose
9
+ Prevent one agent's git operation from destroying or corrupting another agent's or session's in-flight work when multiple sessions or subagents share a checkout, a stash stack, or run in parallel git worktrees.
10
+
11
+ ## When To Apply
12
+ Apply whenever more than one agent session or subagent may be active against the same repository — parallel `task-implementer` waves, concurrent flow workers, or any dispatch that runs inside a worktree cut for a specific task. Cited by `flow-orchestrator`, `job-orchestrator`, and `task-implementer`.
13
+
14
+ ---
15
+
16
+ ## Rules
17
+
18
+ ### 1. Never `git stash`, in any form, in a shared tree
19
+ The stash stack is a single list shared by the main checkout and every worktree cut from it. A "scoped" `git stash push -- <file>` still resets that file to its last commit and pushes the diff onto the shared stack — another lane's `git stash pop` can then restore your entry over its own uncommitted work, or vice versa. This happened here: a worker's scoped `git stash push -- <file>` reset the file and briefly wiped another task's uncommitted work.
20
+
21
+ BAD:
22
+ ```bash
23
+ git stash push -- src/foo.ts # resets the file now; the diff joins a stack every worktree can pop
24
+ ```
25
+
26
+ GOOD — need a temporary revert to test a hypothesis:
27
+ ```bash
28
+ # Make the change with the Edit tool; to undo it, edit it back the same way.
29
+ # If you need to keep a copy while you experiment, copy the file out instead:
30
+ cp src/foo.ts /path/to/scratch/foo.ts.bak
31
+ ```
32
+ Never reach for `git stash` — scoped or not — to get there and back.
33
+
34
+ ### 2. Explicit pathspecs, never `git add -A` / `--all` / `.`
35
+ An unscoped add stages every changed file in the tree, including another lane's in-flight edits, into a commit that has nothing to do with them. This happened here: `git add -A` staged another lane's in-flight files into an unrelated commit.
36
+
37
+ BAD:
38
+ ```bash
39
+ git add -A && git commit -m "..."
40
+ ```
41
+
42
+ GOOD:
43
+ ```bash
44
+ git add src/foo.ts src/foo.test.ts
45
+ git commit -m "..."
46
+ ```
47
+
48
+ ### 3. `git -C <absolute-worktree-path>` for every git command in a worktree
49
+ A bare `git` command runs against whatever the shell's cwd happens to be. Across a session's tool calls that cwd can silently persist from a previous command or reset out of the worktree — a bare `git restore` or `git add -A && git commit && git push` then hits the wrong tree. This happened here: it once pushed another session's work to `main`.
50
+
51
+ BAD:
52
+ ```bash
53
+ cd /path/to/worktree
54
+ # ...several tool calls later, the cwd assumption has drifted...
55
+ git commit -am "fix"
56
+ ```
57
+
58
+ GOOD:
59
+ ```bash
60
+ git -C /absolute/path/to/worktree status
61
+ git -C /absolute/path/to/worktree add src/foo.ts
62
+ git -C /absolute/path/to/worktree commit -m "fix(foo): ..."
63
+ ```
64
+
65
+ ### 4. Commit at every task boundary
66
+ Uncommitted work handed between workers — "the next task can build on my uncommitted edit" — has been destroyed here by a concurrent checkout running in another lane. A task is not done until its diff is committed; leaving it uncommitted is leaving it deletable by someone else's git command.
67
+
68
+ This holds whether or not the worker itself commits. When auto-commit is enabled, the worker commits its own diff before reporting. When it is disabled, the worker does not commit — but the task is still not done until the diff is committed, so it reports its exact changed-file list (see "Reporting Back" below) and the orchestrator stages and commits those paths at the task boundary. Either way, the task's diff is committed at the boundary by whoever owns commits — never left uncommitted for a later step to inherit.
69
+
70
+ ---
71
+
72
+ ## Pinning A Dispatch To Its Worktree
73
+
74
+ Every dispatch into a multi-task or multi-agent run MUST pin the exact worktree before its first write:
75
+
76
+ 1. State the absolute worktree root in the dispatch prompt — never a relative path or "the current directory".
77
+ 2. The dispatched agent's first action is:
78
+ ```bash
79
+ cd <absolute-worktree-root> && pwd && git branch --show-current
80
+ ```
81
+ and confirms the printed path and branch match what the dispatch specified.
82
+ 3. Re-run that check immediately before the first write, not only at the start — a long-running dispatch can have its cwd reset by an unrelated tool call in between.
83
+ 4. Every git command after that uses `git -C <absolute-worktree-root>`, never a bare `git`.
84
+
85
+ ## Reporting Back
86
+
87
+ A worker reports its **exact file list** — the paths it actually changed, nothing inferred — so "the orchestrator stages those paths only". An orchestrator that runs `git add -A` on the strength of a worker's prose summary has recreated Rule 2 at one level up; the reported file list is what makes an explicit-pathspec `git add` possible at the orchestrator level too.
88
+
89
+ ---
90
+
91
+ ## Red Flags — Stop and re-read this rule if you are thinking:
92
+
93
+ | Rationalization | Why it's wrong |
94
+ |---|---|
95
+ | "It's a scoped stash, I'll pop it right away" | The stash stack is shared by every worktree; "right away" does not stop another lane's `pop` from landing between your push and your pop |
96
+ | "`git add -A` is fine, I only touched my files" | `git add -A` stages whatever is dirty in the tree, not what you touched — another lane's dirty files get staged too, silently |
97
+ | "cwd is still the worktree" | Confirm it, don't assume it — `pwd` costs nothing, and a wrong assumption here ships to the wrong branch |
98
+ | "I'll commit everything at the end in one big commit" | Uncommitted work is exactly what a concurrent stash, add, or checkout destroys; commit at each boundary, not at the end |
99
+ | "This repo isn't shared right now, so it's fine just this once" | The failure mode is a race: correct 99 times and destructive the 100th is still destructive, and nothing here can tell you which run you're on |
100
+
101
+ **IRON LAW: NEVER `git stash` OR `git add -A`/`--all`/`.` IN A TREE ANOTHER SESSION MIGHT BE TOUCHING, AND NEVER RUN A GIT COMMAND WITHOUT PINNING IT TO AN ABSOLUTE WORKTREE PATH FIRST.**
@@ -1,24 +1,34 @@
1
1
  ---
2
- description: "Rules for creating implementation plans in date-stamped requirement folders."
2
+ description: "Rules for creating implementation plans as part of a requirements package. Layout follows requirements-package-standard.mdc."
3
3
  alwaysApply: false
4
4
  ---
5
5
 
6
6
  # Implementation Plans Rules
7
7
 
8
8
  ## Purpose
9
- Define structure and storage for implementation plans.
9
+ Define structure and storage for an implementation plan that belongs to a
10
+ requirements package.
10
11
 
11
12
  ## When To Apply
12
- Apply when creating or updating an implementation plan document.
13
+ Apply when creating or updating an implementation plan document that lives
14
+ inside a requirements package (`docs/requirements/<name>/`). Two other
15
+ locations are outside this rule's scope and are governed by
16
+ `documentation-management.mdc` instead:
17
+ - A standalone plan not tied to a requirements package: `docs/plans/<name>/`.
18
+ - A feature/branch analysis plan written by the `feature-analyzer` skill:
19
+ `docs/analysis/<feature>/implementation-plan.md`.
13
20
 
14
21
  ## Location
15
- `<DOCS_ROOT>/requirements/<requirement-name>/<YYYY-MM-DD>/`
22
+ `implementation-plan.md` for a requirements-package plan lives inside that
23
+ package, per `requirements-package-standard.mdc`:
24
+ `docs/requirements/<requirement-name>/implementation-plan.md`. No date
25
+ folder — the plan is versioned in place alongside README/prd/specification.
26
+ For the standalone and analysis locations, see `documentation-management.mdc`.
16
27
 
17
28
  ## Mandatory Behavior
18
- 1. Ask for target location and folder name before creation.
19
- 2. If requirement folder does not exist, create requirements first.
20
- 3. Use a new date folder for every new plan iteration.
21
- 4. Generate and keep synchronized language variants: `ru`, `en`, `ai`.
29
+ 1. Ask for target location and folder name before creation, if not already established.
30
+ 2. If the plan belongs inside a requirements package and that package does not exist yet, create it first (README, prd, specification) before adding the plan.
31
+ 3. Update `implementation-plan.md` in place for each new iteration and bump its `Version` field instead of forking a new folder.
22
32
 
23
33
  ## Required Plan Structure
24
34
  1. High-level plan
@@ -28,22 +38,24 @@ Apply when creating or updating an implementation plan document.
28
38
  ## Output Contract
29
39
  - Plan files MUST be Markdown (`.md`).
30
40
  - Code or command examples MUST be fenced code blocks.
41
+ - Include the `Version: x.y.z` field directly under the H1, per `requirements-package-standard.mdc`.
31
42
 
32
43
  ## Red Flags — Stop and re-read this rule if you are thinking:
33
44
 
34
45
  | Rationalization | Why it's wrong |
35
46
  |---|---|
36
47
  | "The plan is in my head, I don't need to write it down" | An unwritten plan cannot be reviewed, versioned, or handed to another agent |
37
- | "I'll use the existing folder instead of creating a new date folder" | Date folders are the audit trail — overwriting one erases the iteration history |
48
+ | "I'll start a new folder instead of updating the package in place" | The package is the single source of truth; forking a parallel copy is exactly what `requirements-package-standard.mdc` forbids |
38
49
  | "The user knows what we discussed, I'll skip asking for the folder name" | The location question is a confirmation gate, not a convenience; skipping it causes misplaced files |
39
- | "I'll write the plan in English only since that's what the user spoke" | All three variants (ru/en/ai) are required — omitting one breaks downstream tooling |
40
50
 
41
- **IRON LAW: ALWAYS ASK FOR TARGET LOCATION AND FOLDER NAME BEFORE CREATING ANY PLAN FILE, AND GENERATE ALL THREE LANGUAGE VARIANTS.**
51
+ **IRON LAW: ALWAYS ASK FOR TARGET LOCATION AND FOLDER NAME BEFORE CREATING A REQUIREMENTS-PACKAGE PLAN FILE, AND KEEP IT INSIDE ITS REQUIREMENTS PACKAGE. FOR A STANDALONE OR FEATURE-ANALYSIS PLAN, USE `documentation-management.mdc` INSTEAD.**
42
52
 
43
53
  ## Template
44
54
  ```markdown
45
55
  # <Plan Name>
46
56
 
57
+ Version: 0.1.0
58
+
47
59
  ## 1. High-Level Plan
48
60
  - Objective:
49
61
  - Scope:
@@ -3,6 +3,7 @@ description: "Reference template and checklist for MobX store structure and asyn
3
3
  alwaysApply: false
4
4
  globs:
5
5
  - "**/*store*.ts"
6
+ stack_requires: "mobx"
6
7
  ---
7
8
 
8
9
  # MobX Store Template
@@ -4,6 +4,7 @@ alwaysApply: false
4
4
  globs:
5
5
  - "**/*dto*.ts"
6
6
  - "**/dto/**/*.ts"
7
+ stack_requires: "nestjs"
7
8
  ---
8
9
 
9
10
  # NestJS DTO Rules
@@ -5,6 +5,7 @@ globs:
5
5
  - "e2e/**"
6
6
  - "**/*.spec.ts"
7
7
  - "playwright.config.ts"
8
+ stack_requires: "playwright"
8
9
  ---
9
10
 
10
11
  # Playwright E2E Testing Guidelines
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "Rules for creating and updating requirement documents with multilingual outputs."
2
+ description: "Rules for creating and updating requirement documents. Layout and versioning follow requirements-package-standard.mdc."
3
3
  alwaysApply: false
4
4
  ---
5
5
 
@@ -11,15 +11,20 @@ Standardize how requirement sets are created and maintained.
11
11
  ## When To Apply
12
12
  Apply when creating or updating requirement documents.
13
13
 
14
- ## Location
15
- `<DOCS_ROOT>/requirements/<requirement-name>/<YYYY-MM-DD>/`
14
+ ## Location & Layout
15
+ Follow `requirements-package-standard.mdc` for the package layout
16
+ (`docs/requirements/<name>/{README,prd,specification}.md` plus optional
17
+ files), the `Version: x.y.z` field, and the verification/review contracts. Do
18
+ not restate that layout here, and do not date-stamp the folder or fork
19
+ `ru`/`en`/`ai` copies — one set of documents, versioned in place, is the
20
+ standard.
16
21
 
17
22
  ## Mandatory Behavior
18
23
  1. Ask for target location and requirement folder name before writing.
19
24
  2. Confirm naming convention before creation.
20
- 3. Always create a new date-stamped subfolder; do not overwrite old sets.
21
- 4. Generate synchronized `ru`, `en`, and `ai` versions.
22
- 5. Document assumptions and open questions explicitly.
25
+ 3. Reuse the existing package folder for the topic; update documents in place
26
+ and bump their `Version` field rather than creating a parallel copy.
27
+ 4. Document assumptions and open questions explicitly.
23
28
 
24
29
  ## Output Contract
25
30
  - Use Markdown (`.md`) only.
@@ -28,8 +33,7 @@ Apply when creating or updating requirement documents.
28
33
 
29
34
  ## Workflow
30
35
  1. Capture request.
31
- 2. Clarify folder/location.
32
- 3. Create folder structure.
33
- 4. Create all required language files.
34
- 5. Validate synchronization.
35
- 6. Ask whether to apply changes.
36
+ 2. Clarify folder/location under `docs/requirements/<name>/`.
37
+ 3. Create or update the package per `requirements-package-standard.mdc`.
38
+ 4. Document assumptions and open questions.
39
+ 5. Ask whether to apply changes.
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "Workflow for adding or editing rules in the AGENTS.mdc + rules/core structure."
2
+ description: "Workflow for adding or editing rules in the AGENTS.md + rules/core structure."
3
3
  alwaysApply: false
4
4
  ---
5
5
 
@@ -12,10 +12,19 @@ Define a deterministic workflow for adding, editing, and syncing rules.
12
12
  Apply when user asks to create, update, move, reorganize, or sync rules.
13
13
 
14
14
  ## Source of Truth
15
- - Repository source: `.metaproject/rules`
16
- - Root always-on file (plain): `AGENTS.md`
17
- - Root always-on file (Cursor): `AGENTS.mdc` (frontmatter wrapper around AGENTS.md)
18
- - Thematic files: `.metaproject/rules/core/*.mdc`
15
+ - Keryx's own shipped rules: `src/gdskills/bundled/rules/core/*.mdc` in the
16
+ keryx repository — installed into `.metaproject/rules/core/*.mdc` by `keryx
17
+ init`/`keryx update` (the installed copy is regenerated wholesale on every
18
+ run; edit the source, not the installed copy). There is no `keryx install`
19
+ command.
20
+ - A project's own instructions: the project's root `AGENTS.md`/`CLAUDE.md`.
21
+ Edit those files directly, then run `keryx rules sync` (or `keryx rules
22
+ distill` for a large entrypoint) to import them into
23
+ `.metaproject/rules/<name>.md` (e.g. `agents-md.md`, `claude-md.md`) and
24
+ refresh the routing index. A project-owned rule never lives under
25
+ `.metaproject/rules/core/` — that tree mirrors only keryx's own shipped
26
+ rules and is overwritten wholesale by `keryx init`/`keryx update`.
27
+ - Root always-on file: `AGENTS.md`
19
28
 
20
29
  ## Mandatory Clarification Step
21
30
  Before creating or editing any rule, the agent MUST ask and confirm:
@@ -25,24 +34,30 @@ Before creating or editing any rule, the agent MUST ask and confirm:
25
34
  4. Rule scope and trigger conditions
26
35
 
27
36
  ## Mandatory Behavior
28
- 1. Update or create thematic rule files only under `rules/core`.
37
+ 1. Update or create keryx's shipped thematic rule files only under
38
+ `src/gdskills/bundled/rules/core/` (installed to `.metaproject/rules/core/`).
39
+ A project's own instructions belong in its root `AGENTS.md`/`CLAUDE.md`,
40
+ imported via `keryx rules sync`/`keryx rules distill`.
29
41
  2. Keep all rule files in English.
30
42
  3. Keep frontmatter valid YAML.
31
- 4. If core files changed, update `AGENTS.md` catalog (and keep AGENTS.mdc in sync).
43
+ 4. If core files changed, keep `AGENTS.md` consistent and re-run synchronization.
32
44
  5. Run synchronization only after source files are updated.
33
45
 
34
46
  ## How to Run Synchronization
35
- After editing rules under `.metaproject/rules/` or `AGENTS.md`, sync to all targets:
47
+ After editing rules under `src/gdskills/bundled/rules/`, run `keryx update`
48
+ (or `keryx init` on a fresh project) to regenerate the installed copy at
49
+ `.metaproject/rules/`. This stays inside the project — it never writes to a
50
+ home-directory (`~`) location.
51
+
52
+ After editing the project's own root `AGENTS.md`/`CLAUDE.md`, run:
36
53
 
37
54
  ```bash
38
- keryx update
55
+ keryx rules sync
39
56
  ```
40
57
 
41
- ### Sync Targets
42
- - `~/.cursor/rules/AGENTS.md` — Cursor global rules
43
- - `~/.codex/AGENTS.md` — Codex global rules
44
- - `~/.config/zed/AGENTS.md` — Zed global rules
45
- - `~/.config/opencode/AGENTS.md` — OpenCode global rules
58
+ This imports the root `AGENTS.md`/`CLAUDE.md` into `.metaproject/rules/` and
59
+ refreshes the routing index. It is also project-local and writes no
60
+ home-directory (`~`) path.
46
61
 
47
62
  ## Rule File Standard
48
63
  Every core rule MUST include:
@@ -69,7 +69,7 @@ Two modules must recognise the same terminal prompt.
69
69
  ```ts
70
70
  // Wrong — a claim, unchecked. Four attempts to restate this rule from a
71
71
  // reading of the other module each got it wrong in a different way.
72
- /** Same signals scripts/watchdog.ts uses. */
72
+ /** Same signals the watchdog script uses. */
73
73
  const SIGNAL = /do you want to proceed\?/i;
74
74
  ```
75
75
 
@@ -20,7 +20,9 @@ Whoever is about to rely on a project-skill verifies it first:
20
20
  - Find it: `keryx skills route <target>`.
21
21
  - Check freshness: `keryx skills verify <module>/<skill>` (or
22
22
  `skill-verify-skill`). It classifies the skill `fresh | stale | needs-review |
23
- blocked` against current code, graph, wiki, health, memory, and tests.
23
+ blocked` from its required files, metadata, manifest registration, target
24
+ path, and evidence artifacts (graph, ctx, wiki, health, memory). It does not
25
+ read the skill's claims or compare them with the code.
24
26
  - If not `fresh`: do NOT follow it blindly — verify each claim against the code
25
27
  and record the drift so it feeds the learn step below.
26
28
 
@@ -43,10 +45,12 @@ Flow:
43
45
  (version bump + `skill-changelog.md` with provenance, respects manual
44
46
  sections, file-locked).
45
47
 
46
- `learn` is bounded, mechanical synthesis. **Dispatch it as a subagent; if a
47
- cheaper / non-flagship model is available in this environment, use it
48
- (see `model-selection.mdc`), otherwise use the session model.** The flagship's
49
- only job here is to review the proposal before apply.
48
+ `learn` is bounded, mechanical synthesis. **Dispatch it as a subagent at
49
+ `model_tier: light`, resolved via `keryx review tier --findings 1 --diff-lines 0`
50
+ per `model-selection.mdc` — do not pick a model by hand, and do not substitute
51
+ a different `review tier` invocation (e.g. `--scope narrow`, which resolves
52
+ heavier than `light`).** The flagship's only job here is to review the
53
+ proposal before apply.
50
54
 
51
55
  ## Never
52
56