@mrciphersmith/keryx 0.2.97 → 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.
- package/dist/cli.js +569 -235
- package/dist/core.js +1 -1
- package/package.json +1 -1
- package/src/gdskills/bundled/rules/core/api-contracts.mdc +1 -0
- package/src/gdskills/bundled/rules/core/code-style-patterns.mdc +1 -0
- package/src/gdskills/bundled/rules/core/database-patterns.mdc +1 -0
- package/src/gdskills/bundled/rules/core/documentation-management.mdc +33 -38
- package/src/gdskills/bundled/rules/core/error-handling.mdc +1 -11
- package/src/gdskills/bundled/rules/core/execution-metrics.md +1 -2
- package/src/gdskills/bundled/rules/core/frontend-assistant.mdc +1 -0
- package/src/gdskills/bundled/rules/core/git-concurrency.mdc +101 -0
- package/src/gdskills/bundled/rules/core/implementation-plans.mdc +23 -11
- package/src/gdskills/bundled/rules/core/mobx-store-template.mdc +1 -0
- package/src/gdskills/bundled/rules/core/nestjs-dto.mdc +1 -0
- package/src/gdskills/bundled/rules/core/playwright-testing.mdc +1 -0
- package/src/gdskills/bundled/rules/core/requirements-management.mdc +15 -11
- package/src/gdskills/bundled/rules/core/rule-management-workflow.mdc +29 -14
- package/src/gdskills/bundled/rules/core/shared-definitions.mdc +1 -1
- package/src/gdskills/bundled/rules/core/skill-lifecycle.mdc +9 -5
- package/src/gdskills/bundled/rules/core/skills-storage-workflow.mdc +59 -16
- package/src/gdskills/bundled/rules/core/storybook-guidelines.mdc +1 -0
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.codex.md +48 -71
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.cursor.md +48 -71
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.md +48 -71
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.opencode.md +48 -71
- package/src/gdskills/bundled/skills/orchestration/code-verifier/SKILL.zed.md +48 -71
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.codex.md +4 -4
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.cursor.md +4 -4
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.md +4 -4
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.opencode.md +4 -4
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.zed.md +4 -4
- package/src/gdskills/bundled/skills/orchestration/context-collector/orchestrator-prompt.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.codex.md +12 -22
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.cursor.md +12 -22
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.detail.md +12 -22
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.md +12 -22
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.opencode.md +12 -22
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.zed.md +12 -22
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/analysis-request.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/analysis-request.template.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/input-contract.schema.json +4 -4
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/orchestrator-prompt.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.codex.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.cursor.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/SKILL.md +46 -4
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.codex.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.cursor.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.opencode.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/issue-analyzer/SKILL.zed.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.codex.md +3 -3
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.cursor.md +3 -3
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.md +3 -3
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.opencode.md +3 -3
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.zed.md +3 -3
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.codex.md +65 -23
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.cursor.md +65 -23
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.md +65 -23
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.opencode.md +65 -23
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.zed.md +65 -23
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.codex.md +19 -10
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.cursor.md +19 -10
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.md +19 -10
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.opencode.md +19 -10
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.zed.md +19 -10
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/planning/brainstorm/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/planning/interview/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/planning/interview/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/planning/interview/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/planning/interviewer/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.codex.md +7 -7
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.cursor.md +7 -7
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.md +7 -7
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.opencode.md +7 -7
- package/src/gdskills/bundled/skills/planning/prd-creator/SKILL.zed.md +7 -7
- package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/platform/claude-md-management/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/platform/hookify/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/platform/hookify/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/platform/hookify/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/changelog/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/quality/commit/SKILL.codex.md +2 -2
- package/src/gdskills/bundled/skills/quality/commit/SKILL.cursor.md +2 -2
- package/src/gdskills/bundled/skills/quality/commit/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/db-migrate/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/dependency-update/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/deploy/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/perf-check/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/quality/pr/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/pr/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/pr/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.codex.md +2 -2
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.cursor.md +2 -2
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.opencode.md +2 -2
- package/src/gdskills/bundled/skills/quality/pr-issue-documenter/SKILL.zed.md +2 -2
- package/src/gdskills/bundled/skills/quality/push/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/quality/push/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/quality/push/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.codex.md +7 -2
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.cursor.md +7 -2
- package/src/gdskills/bundled/skills/quality/test-gen/SKILL.md +7 -2
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.codex.md +15 -9
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.cursor.md +15 -9
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.md +15 -9
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.opencode.md +15 -9
- package/src/gdskills/bundled/skills/quality/tests-creator/SKILL.zed.md +15 -9
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.codex.md +2 -2
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.cursor.md +2 -2
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.opencode.md +2 -2
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.zed.md +2 -2
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.codex.md +2 -2
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.cursor.md +2 -2
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.opencode.md +2 -2
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.zed.md +2 -2
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.codex.md +2 -2
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.cursor.md +2 -2
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.opencode.md +2 -2
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.zed.md +2 -2
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.codex.md +2 -2
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.cursor.md +2 -2
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.opencode.md +2 -2
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.zed.md +2 -2
- package/src/gdskills/bundled/skills/review/review-architecture/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/review/review-backend/SKILL.md +3 -3
- package/src/gdskills/bundled/skills/review/review-clean-code/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/review/review-core-boundaries/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-flow-graph/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-frontend/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/review/review-frontend-conventions/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-highload/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/review/review-layout/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-logic/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.md +40 -35
- package/src/gdskills/bundled/skills/review/review-orchestrator/input-contract.schema.json +1 -2
- package/src/gdskills/bundled/skills/review/review-orchestrator/review-context.schema.json +1 -5
- package/src/gdskills/bundled/skills/review/review-orchestrator/reviewer-input.schema.json +53 -9
- package/src/gdskills/bundled/skills/review/review-performance/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/review/review-pr-feedback/SKILL.md +6 -6
- package/src/gdskills/bundled/skills/review/review-security-code/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/review/review-style/SKILL.md +3 -3
- package/src/gdskills/bundled/skills/review/review-testing-practices/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-verifier/SKILL.md +1 -1
- package/src/gdskills/bundled/rules/core/review-agent-profile.mdc +0 -49
- 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
|
-
-
|
|
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.
|
|
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: "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
|
|
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.
|
|
17
|
-
|
|
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
|
|
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
|
|
44
|
-
| `plans` | `docs/plans/<name
|
|
45
|
-
| `report` | `docs/report/<name
|
|
46
|
-
| `review-testing` | `docs/review-testing/<name
|
|
47
|
-
| `communication` | `docs/communication/<name
|
|
48
|
-
| `analysis` | `docs/analysis/<name
|
|
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
|
|
56
|
-
report
|
|
57
|
-
|
|
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
|
|
73
|
-
- `
|
|
74
|
-
-
|
|
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
|
-
-
|
|
104
|
-
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
|
@@ -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
|
|
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
|
|
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
|
-
|
|
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
|
|
20
|
-
3.
|
|
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
|
|
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
|
|
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:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "Rules for creating and updating requirement documents
|
|
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
|
-
|
|
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.
|
|
21
|
-
|
|
22
|
-
|
|
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
|
|
33
|
-
4.
|
|
34
|
-
5.
|
|
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.
|
|
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
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
55
|
+
keryx rules sync
|
|
39
56
|
```
|
|
40
57
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
-
|
|
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
|
|
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`
|
|
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
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
|