tillerhand 3.43.0 → 3.47.0
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/.claude/agents/board-chair.md +20 -20
- package/.claude/agents/code-reviewer.md +20 -20
- package/.claude/agents/council-advisor.md +14 -14
- package/.claude/agents/security-auditor.md +30 -30
- package/.claude/agents/test-writer.md +22 -22
- package/.claude/board/board-ai.md +25 -25
- package/.claude/board/board-api.md +25 -25
- package/.claude/board/board-architect.md +28 -28
- package/.claude/board/board-devops.md +25 -25
- package/.claude/board/board-mobile.md +25 -25
- package/.claude/board/board-performance.md +24 -24
- package/.claude/board/board-privacy.md +25 -25
- package/.claude/board/board-product.md +26 -26
- package/.claude/board/board-qa.md +28 -28
- package/.claude/board/board-ux.md +26 -26
- package/.claude/board/council.md +76 -76
- package/.claude/board/rules.md +61 -61
- package/.claude/claude-security-guidance.md +10 -10
- package/.claude/commands/adopt.md +70 -69
- package/.claude/commands/ask-mode.md +9 -9
- package/.claude/commands/board.md +15 -15
- package/.claude/commands/build.md +47 -47
- package/.claude/commands/dashboard.md +17 -17
- package/.claude/commands/design.md +31 -31
- package/.claude/commands/findings-all.md +14 -14
- package/.claude/commands/findings-business.md +7 -7
- package/.claude/commands/findings-legal.md +7 -7
- package/.claude/commands/findings-perf.md +7 -7
- package/.claude/commands/findings-security.md +9 -9
- package/.claude/commands/findings-tech.md +7 -7
- package/.claude/commands/findings-ux.md +7 -7
- package/.claude/commands/fix-bug.md +15 -15
- package/.claude/commands/freeze.md +8 -8
- package/.claude/commands/handoff.md +38 -38
- package/.claude/commands/kit-update.md +17 -14
- package/.claude/commands/language.md +13 -0
- package/.claude/commands/maintain.md +19 -19
- package/.claude/commands/plan-task.md +32 -32
- package/.claude/commands/qa.md +17 -17
- package/.claude/commands/release.md +40 -40
- package/.claude/commands/research.md +31 -31
- package/.claude/commands/retro.md +32 -32
- package/.claude/commands/review-changes.md +15 -15
- package/.claude/commands/rollback.md +24 -24
- package/.claude/commands/start.md +116 -113
- package/.claude/commands/tools.md +11 -11
- package/.claude/commands/user-feedback.md +11 -11
- package/.claude/commands/wrap-up.md +18 -18
- package/.claude/findings/lenses/business.md +24 -24
- package/.claude/findings/lenses/legal.md +29 -29
- package/.claude/findings/lenses/perf.md +19 -19
- package/.claude/findings/lenses/security.md +30 -30
- package/.claude/findings/lenses/tech.md +23 -23
- package/.claude/findings/lenses/ux.md +19 -19
- package/.claude/findings/protocol.md +54 -54
- package/.claude/findings/report-template.md +30 -30
- package/.claude/hooks/budget.mjs +7 -7
- package/.claude/hooks/checkpoint.mjs +12 -12
- package/.claude/hooks/commit-gate.mjs +38 -37
- package/.claude/hooks/cost.mjs +2 -2
- package/.claude/hooks/council.mjs +3 -3
- package/.claude/hooks/dashboard-data.mjs +3 -2
- package/.claude/hooks/dashboard.mjs +164 -149
- package/.claude/hooks/destructive-guard.mjs +74 -64
- package/.claude/hooks/edit-rounds.mjs +3 -3
- package/.claude/hooks/flow.mjs +10 -10
- package/.claude/hooks/freeze-guard.mjs +27 -23
- package/.claude/hooks/gate.mjs +25 -25
- package/.claude/hooks/guard-secrets.mjs +11 -11
- package/.claude/hooks/lang.mjs +114 -0
- package/.claude/hooks/messages.mjs +495 -0
- package/.claude/hooks/models.mjs +14 -11
- package/.claude/hooks/notify.mjs +3 -2
- package/.claude/hooks/package-gate.mjs +17 -15
- package/.claude/hooks/plugins-sync.mjs +9 -9
- package/.claude/hooks/prefs.mjs +19 -19
- package/.claude/hooks/preview.mjs +11 -11
- package/.claude/hooks/progress.mjs +14 -14
- package/.claude/hooks/qa-report.mjs +11 -10
- package/.claude/hooks/reminder.mjs +6 -3
- package/.claude/hooks/session-start.mjs +23 -17
- package/.claude/hooks/shared.mjs +1 -1
- package/.claude/hooks/status-read.mjs +5 -4
- package/.claude/hooks/statusline.mjs +14 -11
- package/.claude/hooks/structure-guard.mjs +9 -9
- package/.claude/hooks/test-guard.mjs +12 -12
- package/.claude/hooks/tools.mjs +28 -29
- package/.claude/hooks/usage.mjs +18 -15
- package/.claude/output-styles/anlatici.md +28 -28
- package/.claude/security-patterns.json +3 -3
- package/.claude/settings.json +2 -0
- package/.claude/skills/logo-design/SKILL.md +42 -42
- package/.claude/skills/motion-video/SKILL.md +52 -52
- package/.claude/skills/source-research/SKILL.md +35 -35
- package/.claude/skills/ui-motion/SKILL.md +38 -38
- package/.github/workflows/kit-tests.yml +7 -7
- package/.github/workflows/npm-publish.yml +16 -16
- package/AGENTS.md +56 -56
- package/CHANGELOG.md +7 -7
- package/CLAUDE.md +5 -5
- package/README.md +199 -172
- package/README.tr.md +292 -0
- package/docs/architecture/overview.md +31 -31
- package/docs/architecture/stack.md +2 -2
- package/docs/archive/README.md +4 -4
- package/docs/decisions/adr-template.md +14 -14
- package/docs/decisions/log.md +10 -10
- package/docs/findings/README.md +13 -13
- package/docs/findings/config.md +13 -13
- package/docs/legal/privacy-kvkk.md +1 -1
- package/docs/operations/accounts.md +25 -25
- package/docs/operations/deploy-setup.md +64 -64
- package/docs/operations/feature-flags.md +17 -17
- package/docs/operations/maintenance.md +48 -48
- package/docs/operations/release-checklist.md +61 -61
- package/docs/operations/spend-alarms.md +28 -28
- package/docs/product/feedback.md +9 -8
- package/docs/product/glossary.md +16 -16
- package/docs/product/launch.md +28 -28
- package/docs/product/prd.md +43 -42
- package/docs/product/roadmap.md +31 -30
- package/docs/product/specs/_template.md +13 -12
- package/docs/product/unit-economics.md +23 -22
- package/docs/quality/metrics.md +14 -14
- package/docs/quality/retros.md +11 -11
- package/docs/quality/test-plan.md +48 -48
- package/docs/security/checklist.md +57 -57
- package/docs/workflow/board.md +7 -7
- package/docs/workflow/cost-log.md +4 -4
- package/docs/workflow/decision-protocol.md +70 -70
- package/docs/workflow/learning.md +4 -4
- package/docs/workflow/mcp-catalog.md +31 -31
- package/docs/workflow/models.md +35 -35
- package/docs/workflow/progress.md +7 -7
- package/docs/workflow/skills.md +108 -108
- package/docs/workflow/usage-limits.md +62 -62
- package/kit/CHANGELOG.md +876 -841
- package/kit/VERSION +1 -1
- package/kit/guide.html +713 -477
- package/kit/guide.tr.html +1328 -0
- package/kit/kit.mjs +56 -54
- package/kit/project/README.md +29 -29
- package/kit/project/gitignore +12 -12
- package/kit/templates/addons/ai/.env.example.append +5 -5
- package/kit/templates/addons/ai/ai/evals/README.md +11 -11
- package/kit/templates/addons/ai/ai/evals/cases.jsonl +2 -2
- package/kit/templates/addons/ai/ai/prompts/README.md +8 -8
- package/kit/templates/addons/ai/docs/ai/guide.md +56 -56
- package/kit/templates/backend/.claude/hooks/format.mjs +1 -1
- package/kit/templates/backend/.claude/structure.json +1 -1
- package/kit/templates/backend/.env.example +6 -6
- package/kit/templates/backend/.github/dependabot.yml +1 -1
- package/kit/templates/backend/.github/workflows/ci.yml +13 -13
- package/kit/templates/backend/.github/workflows/claude-ci-fix.yml +19 -19
- package/kit/templates/backend/.github/workflows/claude-maintenance.yml +18 -18
- package/kit/templates/backend/.github/workflows/live-monitoring.yml +14 -14
- package/kit/templates/backend/.pre-commit-config.yaml +3 -3
- package/kit/templates/backend/docs/architecture/stack.md +98 -98
- package/kit/templates/backend/docs/architecture/structure.md +34 -34
- package/kit/templates/mobile/.claude/structure.json +1 -1
- package/kit/templates/mobile/.env.example +6 -6
- package/kit/templates/mobile/.github/dependabot.yml +2 -2
- package/kit/templates/mobile/.github/workflows/ci.yml +18 -18
- package/kit/templates/mobile/.github/workflows/claude-ci-fix.yml +19 -19
- package/kit/templates/mobile/.github/workflows/claude-maintenance.yml +18 -18
- package/kit/templates/mobile/.gitignore.append +2 -2
- package/kit/templates/mobile/docs/architecture/stack.md +113 -113
- package/kit/templates/mobile/docs/architecture/structure.md +33 -33
- package/kit/templates/mobile/docs/design/design-guide.md +37 -37
- package/kit/templates/mobile/tests/security/rls.mjs +22 -22
- package/kit/templates/web-saas/.claude/structure.json +1 -1
- package/kit/templates/web-saas/.env.example +11 -11
- package/kit/templates/web-saas/.github/dependabot.yml +3 -3
- package/kit/templates/web-saas/.github/workflows/ci.yml +20 -20
- package/kit/templates/web-saas/.github/workflows/claude-ci-fix.yml +19 -19
- package/kit/templates/web-saas/.github/workflows/claude-maintenance.yml +18 -18
- package/kit/templates/web-saas/.github/workflows/live-monitoring.yml +12 -12
- package/kit/templates/web-saas/docs/architecture/stack.md +116 -116
- package/kit/templates/web-saas/docs/architecture/structure.md +44 -44
- package/kit/templates/web-saas/docs/design/design-guide.md +38 -38
- package/kit/templates/web-saas/tests/live/smoke.spec.ts +4 -4
- package/kit/templates/web-saas/tests/security/rls.mjs +22 -22
- package/kit/tools/codex/.codex/hooks.json +1 -1
- package/package.json +2 -2
- package/README.en.md +0 -267
|
@@ -1,103 +1,104 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
3
|
-
argument-hint: [
|
|
2
|
+
description: Brings an existing project (in progress, disliked or needing improvement) into the kit. Scans the code, derives the docs from the code, verifies by asking questions, and produces an alignment roadmap that brings tests and structure to the kit's layout.
|
|
3
|
+
argument-hint: [empty | short note about the project]
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
Note: $ARGUMENTS
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
This is a **9-step alignment wizard** (0-9). It is the counterpart of `/start` for existing code. It starts from the code, not from an idea, but the user still makes the decisions: Ask every decision per `docs/workflow/decision-protocol.md` and write it to `docs/decisions/log.md` the moment it is made. Do not change application code or move files in this session. Moves and fixes are done with the roadmap tasks, through `/build`.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
**Prerequisite:** The kit must be installed in this folder with `init` (`.kit.json` exists, `type` empty). If not installed, give the user the install command: `node <kit folder>/kit/kit.mjs init`. A new session must be opened after installation.
|
|
11
11
|
|
|
12
|
-
**
|
|
12
|
+
**Resuming:** If `docs/workflow/progress.md` → `**Aktif faz:** Başlangıç (uyum)` and `**Başlangıç adımı:**` is greater than 0, resume from that step. When a step ends, update this line (`N/9`) and the `**Son güncelleme:**` line, then write the status block.
|
|
13
13
|
|
|
14
|
-
**
|
|
14
|
+
**Respect existing code:** Installation does not overwrite the project's files; the kit's version is placed next to it as `<file>.kit-new`. Handle them one by one in Step 2.
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## Step 0: Preparation
|
|
19
19
|
|
|
20
|
+
0. **Language (before anything else):** Apply the language question at the start of `/start` Step 0 exactly (question in English, Turkish / English / Other, `node .claude/hooks/lang.mjs --set <code>`, translation if needed). If a language is already chosen, do not ask again.
|
|
20
21
|
1. `docs/workflow/progress.md` → `**Aktif faz:** Başlangıç (uyum)`, `**Başlangıç adımı:** 0/9`.
|
|
21
|
-
2. `/start`
|
|
22
|
-
3. **
|
|
23
|
-
- **
|
|
24
|
-
- **
|
|
25
|
-
|
|
22
|
+
2. Apply these items from `/start` Step 0 exactly: Profile (0), narrator mode (0b), tool (0c), auto memory (0d), model and effort (0e, `docs/workflow/models.md`), environment check (1), plugins (2), caveman (3), code map (5), notifications (6), dashboard (6b). The code map is even more useful in an existing project; make "Install" the recommended option.
|
|
23
|
+
3. **Scan depth:** Read the limit and ask. Show the estimated costs:
|
|
24
|
+
- **Quick scan (Recommended, on Pro):** Structure, stack, tests, git history, docs. About 10-20% of the 5-hour limit.
|
|
25
|
+
- **Deep scan:** In addition to the quick scan, the selected findings reports (`/findings-tech`, `-security`, `-ux` etc.). About 8-15% more per report. Ask which reports to run with multi-select.
|
|
26
|
+
Append the choice to the `**Profil:**` line (e.g. `Hafif · scan: Hızlı`).
|
|
26
27
|
|
|
27
|
-
##
|
|
28
|
+
## Step 1: Scan (read-only)
|
|
28
29
|
|
|
29
|
-
|
|
30
|
-
1. **Stack:**
|
|
31
|
-
2. **
|
|
32
|
-
3.
|
|
33
|
-
4. **
|
|
34
|
-
5. **
|
|
35
|
-
6. **Git
|
|
36
|
-
7. **
|
|
37
|
-
8. **
|
|
30
|
+
Do not read files in bulk: if the code map is connected, use it first; otherwise start from the package files, the folder tree and the entry points. Extract:
|
|
31
|
+
1. **Stack:** Language, framework, database, auth, hosting, package manager. Is there a lock file? Is the runtime version pinned (`.nvmrc`, `.python-version`, `engines`)?
|
|
32
|
+
2. **Structure:** Folder tree (2-3 levels), entry points, layers. How far is it from the kit's feature-based structure (`features/<feature>/`)?
|
|
33
|
+
3. **Features:** The user-visible feature list from routes, screens, API endpoints and models.
|
|
34
|
+
4. **Tests:** Is there a test setup? Run the tests and show the result: how many tests, how many red, which areas are covered. Also flag tests that have no verification line or that pass everything with mocks.
|
|
35
|
+
5. **Installability:** Setup steps in the README, `.env.example`, system dependencies.
|
|
36
|
+
6. **Git history:** Summary of the last 30 commits, active branches, most changed files (risky zones).
|
|
37
|
+
7. **Existing docs:** README, the old `CLAUDE.md` and `AGENTS.md` (they stay in place; the kit's versions have the `.kit-new` extension), the docs folder if any.
|
|
38
|
+
8. **Parts without source:** A compiled package, minified JS, an Electron ASAR or a dependency with lost source that entered the repo. List them if present. If their inside needs to be understood, suggest the rea CLI (`docs/workflow/mcp-catalog.md` → rea): only for parts the project owner owns or is authorized to inspect, checking the license.
|
|
38
39
|
|
|
39
|
-
|
|
40
|
+
Show the findings as a short table. In a quick scan do not dive into the code: only structure and summary.
|
|
40
41
|
|
|
41
|
-
##
|
|
42
|
+
## Step 2: Type and installation
|
|
42
43
|
|
|
43
|
-
1.
|
|
44
|
-
2.
|
|
45
|
-
3. **`.kit-new`
|
|
44
|
+
1. Propose the type based on the scan and get it approved (web-saas / mobile / backend; is there an AI feature; if there are sales in Turkey or Turkish users, the Turkey add-on `tr`, details in `/start` Step 2).
|
|
45
|
+
2. Install: `node <kit folder>/kit/kit.mjs install --type <type> [--addons ai,tr] --project .` (the kit folder is in the `.kit.json` → `kit` field; if the field is `local`, the folder is in the git-ignored `.kit.local.json` → `kit`, and if that file is missing, the project was opened on another machine: ask the user for the kit folder or use `npx -y tillerhand@<.kit.json → version>`; if the field is `npx:tillerhand@<version>`, `npx -y tillerhand@<version> install ...`; if the version is not exactly in the form `1.2.3` and the same as `.kit.json` → `version`, stop and ask). If the tool was not chosen at `init`, add the choice from Step 0 as `--tool <list>`.
|
|
46
|
+
3. **`.kit-new` files:** For each one (except `CLAUDE.md` and `AGENTS.md`, which are in Step 4), summarize the difference and ask as a decision: take the kit's / keep the project's / merge. Examples: `.env.example` is usually merged; for `ci.yml`, compare what the existing CI does with the kit's. Then delete the `.kit-new` file.
|
|
46
47
|
|
|
47
|
-
##
|
|
48
|
+
## Step 3: Derive the docs from the code
|
|
48
49
|
|
|
49
|
-
|
|
50
|
-
1. **`docs/product/prd.md`:** Problem,
|
|
51
|
-
2. **`docs/architecture/stack.md`:** "Seçilen teknolojiler"
|
|
52
|
-
3. **`docs/architecture/overview.md`, `docs/product/glossary.md`:**
|
|
53
|
-
3b. **
|
|
54
|
-
4. **README:**
|
|
50
|
+
Write what the code says as a draft, ask what cannot be understood from the code (AskUserQuestion, in rounds):
|
|
51
|
+
1. **`docs/product/prd.md`:** Problem, target user, current features (from the code), draft acceptance criteria. Ask: Were the project's purpose and audience understood correctly? **What do you dislike, what do you want to improve?** (multi-select + free text). Which features are missing or unfinished?
|
|
52
|
+
2. **`docs/architecture/stack.md`:** Fill the "Seçilen teknolojiler" (chosen technologies) table with the current stack. Choices different from the kit's catalog are not errors; proposing a change is a separate decision and is asked only if there is a serious reason (security, an end-of-life version, cost).
|
|
53
|
+
3. **`docs/architecture/overview.md`, `docs/product/glossary.md`:** Data model, services, main concepts.
|
|
54
|
+
3b. **Research (expensive step, optional):** Suggest `/research` for comparison with similar projects and competitors (quick: about 10-15% of the limit). Do it / Leave for later. Selected features go into Phase 3 in Step 8.
|
|
55
|
+
4. **README:** The "Requirements" and "Installation" sections (`/start` Step 4 item 3a). A missing lock file or version file becomes one of the first tasks in Step 8.
|
|
55
56
|
|
|
56
|
-
##
|
|
57
|
+
## Step 4: Rewrite AGENTS.md and CLAUDE.md
|
|
57
58
|
|
|
58
|
-
|
|
59
|
+
The shared rules are in `AGENTS.md` (read by Claude Code, Codex, Antigravity); `CLAUDE.md` imports it with `@AGENTS.md` and keeps only Claude Code-specific additions.
|
|
59
60
|
|
|
60
|
-
1.
|
|
61
|
-
2.
|
|
62
|
-
3.
|
|
63
|
-
4.
|
|
61
|
+
1. Take the kit's `AGENTS.md` (or `AGENTS.md.kit-new`) as the base; fill the project name, the one-sentence description and the "Komutlar" (commands) section. `CLAUDE.md` becomes the kit's `CLAUDE.md.kit-new` version. If `init` wrote `@AGENTS.md.kit-new` into `CLAUDE.md` because of the project's `AGENTS.md`, change this line to `@AGENTS.md`.
|
|
62
|
+
2. Read the old `CLAUDE.md` (and the old `AGENTS.md` if any) and list the project-specific rules in them (code style, forbidden commands, package manager, environment notes, places to be careful). Filter out those that are the same as the kit's rules.
|
|
63
|
+
3. Ask the rest with **multi-select**: "Which of the old rules should go into the new AGENTS.md?" If any conflicts with a kit rule, point it out separately.
|
|
64
|
+
4. Add the selected ones to `AGENTS.md` as a `## Project rules` section (after "Core rules"; only the Claude Code-specific ones go to `CLAUDE.md`). Keep the old ones as `docs/archive/claude-md-eski.md` (and `agents-md-eski.md`), delete the `.kit-new` files.
|
|
64
65
|
|
|
65
|
-
##
|
|
66
|
+
## Step 5: Tests and critical flows
|
|
66
67
|
|
|
67
|
-
1.
|
|
68
|
-
2.
|
|
69
|
-
3. **
|
|
70
|
-
4.
|
|
68
|
+
1. Recall the test result from Step 1. Red tests and tests that verify nothing are recorded as findings.
|
|
69
|
+
2. Propose the critical flows (such as sign-in, payment, data save and delete; 3-7 flows) and get them approved with multi-select. Write them to `docs/quality/test-plan.md`.
|
|
70
|
+
3. **Ask the user the correct behavior of every critical flow** (concrete questions such as "What should happen if the password is wrong?"). The code's current behavior is not the source for tests: the code may be wrong. If the code and the answer conflict, write it as a finding and add the fix task to Step 8.
|
|
71
|
+
4. Rule: Before the structure is moved, end-to-end tests are written for these flows. After that, each task writes the test of the code it touches. Tests are not written in bulk for the whole project.
|
|
71
72
|
|
|
72
|
-
##
|
|
73
|
+
## Step 6: Deep scan (if chosen)
|
|
73
74
|
|
|
74
|
-
|
|
75
|
+
Run the findings reports chosen in Step 0 (`/findings-all <types>` or one by one). Take the critical and high findings as candidates for the roadmap in Step 8.
|
|
75
76
|
|
|
76
|
-
|
|
77
|
+
**Code map for humans (optional):** If the user wants to explore the code visually themselves, suggest Understand-Anything (`yayin` package: `node .claude/hooks/tools.mjs --required yayin`). `/understand` reads all the code on the first run and is expensive in a big project: state the cost and ask. There is no Turkish output; use `--language en`. Then `/understand-dashboard`. The code map (codebase-memory-mcp) is for the agent, this one is for humans; neither replaces the other.
|
|
77
78
|
|
|
78
|
-
##
|
|
79
|
+
## Step 7: Board and design (optional)
|
|
79
80
|
|
|
80
|
-
|
|
81
|
-
1. **
|
|
82
|
-
2. **
|
|
81
|
+
Expensive steps: state the cost first (`docs/workflow/usage-limits.md`), then ask: Do it / Do it light / Leave for later.
|
|
82
|
+
1. **Board:** `/start` Step 6.
|
|
83
|
+
2. **Design** (if there is a UI): First extract `DESIGN.md` from the existing UI (`impeccable:impeccable` → extract); then ask: keep the current design / improve / new direction (`/design general`).
|
|
83
84
|
|
|
84
|
-
##
|
|
85
|
+
## Step 8: Alignment roadmap → `docs/product/roadmap.md`
|
|
85
86
|
|
|
86
|
-
|
|
87
|
-
1. **
|
|
88
|
-
2. **
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
92
|
-
3. **
|
|
93
|
-
4. **
|
|
87
|
+
Rewrite the kit's "Faz 0" template (Phase 0) for this project. Order matters:
|
|
88
|
+
1. **Phase 0: Safe ground.** Lock file and version file, README setup steps, CI and pre-commit, the state of the red tests. Then a separate task for each critical flow: "Ö-xx end-to-end test (by the correct behavior)".
|
|
89
|
+
2. **Phase 1: Move the structure.** The project is moved to the kit's folder structure (`docs/architecture/structure.md`). Each feature is a separate task (single session). Rules:
|
|
90
|
+
- The move is done on a separate branch (`uyum/yapi`).
|
|
91
|
+
- At the end of each task the tests and the app must work. If the tests are green, the working point is saved (`checkpoint.mjs --save`). If it breaks, return with `/rollback`.
|
|
92
|
+
- Until the move ends, the old folders are temporarily added to the `.claude/structure.json` → `allow` list (so the CI structure check does not stay red). This is a structure decision: ask the user. The last task of Phase 1 is deleting these temporary lines.
|
|
93
|
+
3. **Phase 2: Findings.** Things the user dislikes, conflicts between the code and the correct behavior, and the critical items of the findings reports, in order of importance.
|
|
94
|
+
4. **Phase 3 and after:** New features (gaps in the PRD).
|
|
94
95
|
|
|
95
|
-
|
|
96
|
+
Ask: "Which one should we start with in Phase 2?" Summarize the roadmap and get approval.
|
|
96
97
|
|
|
97
|
-
##
|
|
98
|
+
## Step 9: Closing
|
|
98
99
|
|
|
99
|
-
1. `docs/workflow/progress.md`:
|
|
100
|
-
2. `node .claude/hooks/dashboard.mjs
|
|
101
|
-
3.
|
|
102
|
-
4.
|
|
103
|
-
5.
|
|
100
|
+
1. `docs/workflow/progress.md`: Active phase `Faz 0`, active task `G-001`, start step `9/9`, next step, pending decisions.
|
|
101
|
+
2. Run `node .claude/hooks/dashboard.mjs`.
|
|
102
|
+
3. Give a summary: type and stack, current test state, critical flows, rules moved to AGENTS.md, structure gap, the 3 most important findings, first task, remaining limit.
|
|
103
|
+
4. Suggest a commit: `docs: kit uyumu (adopt)`.
|
|
104
|
+
5. Last line: "Continue: `/build G-001`".
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
3
|
-
argument-hint: [
|
|
2
|
+
description: Shows or changes the question mode (on which topics decisions are asked).
|
|
3
|
+
argument-hint: [empty | off <konu|hepsi> | on <konu|hepsi>]
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
Request: $ARGUMENTS
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Topics: `urun`, `teknik`, `tasarim`, `icerik`, `veri`, `guvenlik`, `maliyet` (`docs/workflow/decision-protocol.md` §1).
|
|
9
9
|
|
|
10
|
-
- **
|
|
11
|
-
- **`off <
|
|
12
|
-
- **`on <
|
|
13
|
-
-
|
|
10
|
+
- **Empty:** Show the current question mode, the closed topics and the automatic decisions made while closed (`docs/decisions/log.md` → deciding party `otomatik`).
|
|
11
|
+
- **`off <topic|hepsi>`:** Update the `**Soru modu:**` line in `docs/workflow/progress.md`. Example: `açık · kapalı konular: tasarim, icerik`. If all are closed: `kapalı · kapalı konular: hepsi`.
|
|
12
|
+
- **`on <topic|hepsi>`:** Remove the topic from the list. If the list becomes empty: `açık · kapalı konular: yok`.
|
|
13
|
+
- If the topic name is not in the list, propose the closest topic and ask.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Confirm the change in one line. Also remind: Deleting data, prod deploys and actions that spend money always ask for approval, regardless of question mode.
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
3
|
-
argument-hint: [
|
|
2
|
+
description: Sets up, changes, convenes or shows the status of the expert board.
|
|
3
|
+
argument-hint: [empty | setup | convene <plan|task|phase-end|release|konu> | council <soru>]
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
Request: $ARGUMENTS
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
First read `.claude/board/rules.md` and `docs/workflow/board.md`.
|
|
9
9
|
|
|
10
|
-
- **
|
|
11
|
-
- **`setup`:** rules.md §5
|
|
12
|
-
- **`convene <
|
|
13
|
-
- `plan`:
|
|
14
|
-
- `task`:
|
|
15
|
-
- `phase-end`:
|
|
16
|
-
- `release`:
|
|
17
|
-
-
|
|
10
|
+
- **Empty:** Show the board's status: members, the review role's model (`node .claude/hooks/models.mjs --show`), the last 5 meetings and their results, open critical findings, commit review on/off. If the board is not set up, propose `/board setup`.
|
|
11
|
+
- **`setup`:** Apply rules.md §5. If the board already exists, ask what to do: add a member / remove a member / refresh the "This project" sections for the current stack. The model does not change here: members work with the review role (`docs/workflow/models.md`).
|
|
12
|
+
- **`convene <type>`:** Apply rules.md §4.
|
|
13
|
+
- `plan`: the last unapproved plan
|
|
14
|
+
- `task`: the active task's changes (`git diff`)
|
|
15
|
+
- `phase-end`: all changes of the active phase (`git log` and diff summary since the phase start)
|
|
16
|
+
- `release`: the whole codebase
|
|
17
|
+
- Other texts: a topic given by the user (e.g. "payment flow")
|
|
18
18
|
|
|
19
|
-
- **`council <soru>`:**
|
|
19
|
+
- **`council <soru>`:** Decision council (`.claude/board/council.md`). Clarify the question and the options; if options are missing, first have the user confirm them. When done, ask for the decision with AskUserQuestion, using the chair's recommendation.
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
Before a meeting, check the limit (`node .claude/hooks/usage.mjs`). A full board meeting is expensive. If the level is yellow or red, say the estimated cost in one line (`docs/workflow/usage-limits.md` §3). If the full board is an optional meeting, propose reducing the member count; do not stop the meeting because of the limit.
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
When done: board synthesis, decisions asked of the user, the line added to the log, status block.
|
|
@@ -1,51 +1,51 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
3
|
-
argument-hint: [
|
|
2
|
+
description: Implements the next (or given) roadmap task, tests it, marks it done.
|
|
3
|
+
argument-hint: [task id, empty = next task]
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
Task: $ARGUMENTS
|
|
7
|
+
If empty, take `docs/workflow/progress.md` → "Sıradaki adım" (next step), or the first unchecked task in `docs/product/roadmap.md`.
|
|
8
8
|
|
|
9
|
-
0. **Limit
|
|
10
|
-
0b. **Model
|
|
11
|
-
1.
|
|
12
|
-
2.
|
|
13
|
-
2a. **
|
|
14
|
-
2b.
|
|
15
|
-
2c. **
|
|
16
|
-
**
|
|
17
|
-
3.
|
|
18
|
-
- **
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
4.
|
|
31
|
-
5. **
|
|
32
|
-
-
|
|
33
|
-
- API/
|
|
34
|
-
-
|
|
35
|
-
6.
|
|
36
|
-
6b. **
|
|
37
|
-
7. `AGENTS.md` → "
|
|
38
|
-
8.
|
|
39
|
-
`node .claude/hooks/progress.mjs --done <
|
|
40
|
-
`--cost`
|
|
41
|
-
9.
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
9
|
+
0. **Limit and context:** Read the limit and record the start: `node .claude/hooks/progress.mjs --start` (the desktop has no status line: pass `--limit <5-hour %>`, taken from `get_usage`). If context is past 50%, first suggest `/wrap-up` + `/clear`. If the level is yellow/red or the estimate exceeds the remaining share, say so in one line and start (`docs/workflow/usage-limits.md` §3; do not ask). If `docs/workflow/progress.md` → "Kaldığı yer" (where we left off) is filled, continue from there.
|
|
10
|
+
0b. **Model and effort** (`docs/workflow/models.md`): Read the last choice with `node .claude/hooks/models.mjs --show`. There are five roles, one question per role (model and effort together, e.g. "Sonnet · high"; options are in models.md). Make two AskUserQuestion calls: first plan, code, test; then review, docs. In each question put the recommended option from models.md first, labeled "(Recommended)". If the last choice differs, write "last choice" in that option's description. In the test question, the recommended model differs from the code role's last choice (models.md). Save the answer with `node .claude/hooks/models.mjs --set plan=<model>:<effort> code=… test=… review=… docs=…`. If code and test use the same model, the script warns: pass the warning to the user. If the main session's model or effort differs from the plan role, suggest `/model <name>` and `/effort <level>` in one line. If the `maliyet` topic is closed in question mode, do not ask and do not run `--set`: the last choice stays valid; write "automatic" in the status block.
|
|
11
|
+
1. Restate the task and its acceptance criteria to me in one sentence. Update the active task in `docs/workflow/progress.md`.
|
|
12
|
+
2. If there is no approved plan for this task and it touches more than 2 files, first apply the `/plan-task` steps (including decision points), then wait for approval.
|
|
13
|
+
2a. **Flow:** `node .claude/hooks/flow.mjs --files <number of files in the plan>` (the desktop has no status line: pass `--context` and `--limit` from `get_usage`). The output says where code and docs work run (main session / subagent), and how many members the end-of-task board uses and whether they meet in parallel or in sequence (re-run it at 6b: it suggests members by name from the changed paths). Steps 2c, 6b and 8 follow it. If it says "Suggest /clear first", suggest it in one line.
|
|
14
|
+
2b. **Tests first, with a separate agent:** The code writer does not write the tests (AGENTS.md rule 7). Whatever the flow says, run the `test-writer` subagent with the test role's `model` and `effort`. Give the prompt only: the task, the acceptance criteria, the spec if any, and the public interface of the code to be touched (signatures, API paths). Do not give the approved plan's implementation details or ready-made test code: a test checks the requested behavior, not the plan. The agent writes the acceptance tests (criterion id in the test name: `Ö-01.1`) and, if needed, adversarial tests, runs them and shows that they are **red**; show me the red output. If it reports an unclear criterion, ask me the question yourself. Only `test-writer` can write to test files: if the main session or the code agent tries, the test guard blocks it.
|
|
15
|
+
2c. **Hand off to the code role (2c and 3):** If the flow says "Kod: ana oturum" (code: main session; a small task: the subagent's cold start costs more than it saves), write the code yourself per step 3. Otherwise run a subagent with the Agent tool and pass the code role's `model` and `effort` in the call. Prompt: the task and acceptance criteria, the approved plan, the files to touch, the rules in step 3, and the red tests from 2b (goal: turn them green; it does not touch test files). A subagent cannot ask the user: at a decision point it must stop and report the question and options; you ask the question, write the decision to the log, and continue the subagent with the answer. Resume the same subagent with SendMessage for fixes or continuation too; do not start a new agent (it would re-read the files). Ask for a short report (at most ~15 lines: changed files, test result as numbers, open questions; no code and no full output). When the subagent finishes, read the diff and the test output yourself; step 4 onward runs in the main session. Put the user-visible text (humanizer) into its final form yourself.
|
|
16
|
+
**If a test looks wrong:** The code side does not change the test. It reports the reason; resume `test-writer` with SendMessage and let it decide per the criterion. If the criterion changes, that is a decision: ask the user.
|
|
17
|
+
3. Implement. Rules:
|
|
18
|
+
- **If a new decision point appears while implementing, stop and ask** (`docs/workflow/decision-protocol.md`). Do not guess and continue.
|
|
19
|
+
- Skills (`docs/workflow/skills.md`): `ponytail:ponytail` for code, `mattpocock-skills:tdd` for critical flows. For UI, the chosen direction skill + `impeccable:impeccable` (stay bound to `DESIGN.md`; if a new design decision is needed, `/design`). `humanizer:humanizer` for user-visible text.
|
|
20
|
+
- Only this task's scope. Do not fix problems outside the task; write them to `docs/workflow/progress.md` → "Açık sorunlar" (open issues).
|
|
21
|
+
- If the code map is connected, explore with it; do not read files wholesale. In a large file, search first (grep), then read only the needed line range.
|
|
22
|
+
- If the package gate warns while installing a package (made-up / too new / rarely used), tell the user; do not try to force it.
|
|
23
|
+
- If the plan needs a feature flag, put the feature behind a flag and add it to `docs/operations/feature-flags.md`.
|
|
24
|
+
- If the limit reaches 90% / 95% / 99% while working, give the warnings in `docs/workflow/usage-limits.md` §4; do not stop the work.
|
|
25
|
+
- Use the existing patterns in the project.
|
|
26
|
+
- Do not forget error, empty and loading states.
|
|
27
|
+
- If you touch a critical flow (`docs/quality/test-plan.md`), add a test.
|
|
28
|
+
- New environment variable → `.env.example`.
|
|
29
|
+
- New package → the lock file goes into the commit. New system dependency (database, ffmpeg, etc.) or setup step → `README.md` → Requirements / Installation.
|
|
30
|
+
4. Verify: `node .claude/hooks/gate.mjs --run` (lint, type check, test, Semgrep; the end-of-task and commit meetings use this output). Fix anything red. If it says "komut onayı gerekli", show me the commands; if I approve, run `node .claude/hooks/gate.mjs --approve`. If you cannot fix the same error in 2 attempts, stop and explain the state to me.
|
|
31
|
+
5. **Produce evidence.** "It should work" is not enough; show that it works. The method is in `docs/architecture/stack.md` → "Verification":
|
|
32
|
+
- UI change → `node .claude/hooks/preview.mjs <task id>`: it opens the dev server, writes desktop (1440) and mobile (390) screenshots to `.previews/<task id>/`, and closes the server. The first run can take a few minutes because of the Playwright download and the first build: give the command a 10-minute timeout. Open the images and show them to me. If the script says "komut onayı gerekli", show me the commands; if I approve, run `node .claude/hooks/gate.mjs --approve`. If it gives another error, write the message in the report and take the screenshot by hand. Then try the main scenario and one error scenario on the relevant screen. To prove the task's UI acceptance criteria in the browser, suggest `/qa` in the report.
|
|
33
|
+
- API/business logic → send a real request or run the test; show the request and the response.
|
|
34
|
+
- If you cannot produce evidence (device, panel, payment, etc.), say so clearly and write the steps I must do.
|
|
35
|
+
6. If the UI changed, run `impeccable:impeccable` → `critique`; ask me whether to fix the important findings.
|
|
36
|
+
6b. **End-of-task board meeting** (`.claude/board/rules.md`; if the board is set up). This is the only full review of the change: the board members relevant to the change, in the number the flow (2a) says (at most 3), + `code-reviewer` (+ `security-auditor` if the change touches a sensitive path such as auth, payment or personal data), with the review role's `model` and `effort`. If there is a RET, the task is not done; ask with the finding and the options. If the verdict is ONAY or KOŞULLU ONAY and the gate (step 4) is green, run `node .claude/hooks/commit-gate.mjs --approve "görev sonu: <attendees>"`: the commit does not convene the board again for the same changes; if files changed afterward, only those are reviewed. Write the meeting to the `docs/workflow/board.md` log. If the board is not set up, suggest `/review-changes` in step 9.
|
|
37
|
+
7. Check the "done" list in `AGENTS.md` → "Definition of "done"" one by one.
|
|
38
|
+
8. Close the scope shield (the command asks the user): `node .claude/hooks/freeze-guard.mjs --plan-end`. In the PRD, check off only the criteria whose tests are green. Run the tests with a JUnit report (`docs/architecture/stack.md` → Acceptance tests and feature flags) so the dashboard updates. Read the limit again. Writing the roadmap, the cost log and progress is mechanical: do not spend model calls; write it with one command:
|
|
39
|
+
`node .claude/hooks/progress.mjs --done <task id> --cost "<task id> <short name>" <K|O|B> --task "-" --did "<task id>: <one line on what was done>" --next "<next task>" --check`
|
|
40
|
+
`--cost` takes the start from step 0 and computes the end and the duration itself (on the desktop add `--limit <%>`). `--check` validates the bold-labeled lines of progress.md (the status line and the dashboard read them); fix them if broken. Write plain-text sections such as open issues and pending decisions by hand if needed.
|
|
41
|
+
9. Give the report:
|
|
42
|
+
- What was done (2-3 lines)
|
|
43
|
+
- Decisions made in this task (user / automatic)
|
|
44
|
+
- Evidence (screenshot, request/response, test output)
|
|
45
|
+
- How I should test it (step by step)
|
|
46
|
+
- Suggested commit message
|
|
47
|
+
- Places you could not check or are unsure about
|
|
48
|
+
- If I corrected your behavior or stated a preference during the task: in the same AskUserQuestion call, a separate multi-select question "Save as a preference?" (AGENTS.md → rule 9, if present; save the selected ones with `prefs.mjs --add`). If there are no notes, do not ask.
|
|
49
|
+
- Ask "What next?" with AskUserQuestion: commit (Recommended; the end-of-task review is valid; if the board is not set up, `/review-changes` first) / move to the next task / ask for changes in this task. At commit, a light board review is requested automatically (commit gate hook). After the commit is made and the tests are green, save a working point: `node .claude/hooks/checkpoint.mjs --save "<task id> done, tests green"` (`/rollback` returns here).
|
|
50
|
+
- If the commit was made: check that `docs/workflow/progress.md` → "Sıradaki adım" (next step) is current, then suggest `/clear` in one line (task = session, `docs/workflow/usage-limits.md` §3; independent of the context percentage). The new session continues from progress.md.
|
|
51
|
+
- Status block
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Gives the project's detailed status report and refreshes the dashboard.html dashboard.
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
1. `node .claude/hooks/cost.mjs` (
|
|
6
|
-
2.
|
|
5
|
+
1. Run `node .claude/hooks/cost.mjs` (tokens and cost of the last 30 days, ccusage) and `node .claude/hooks/dashboard.mjs`. This command produces the `dashboard.html` control panel (the Stop hook also produces it automatically after every Claude answer; while the page is open it refreshes every 30 s). Tabs: Overview, Roadmap, Decisions, Board, Findings, Quality, Activity, Product and tech, Operations, Limit and cost. For token details (most expensive requests, cache) use `/session-report`.
|
|
6
|
+
2. Read the limit (`docs/workflow/usage-limits.md` §1). Read `docs/workflow/progress.md`, `docs/product/roadmap.md`, `docs/decisions/log.md` and `docs/workflow/board.md`, and give this report:
|
|
7
7
|
|
|
8
8
|
```
|
|
9
|
-
##
|
|
10
|
-
**
|
|
11
|
-
**
|
|
9
|
+
## Status: [project] · [date]
|
|
10
|
+
**Phase:** [active phase] · **Task:** [active task] · **Progress:** [done/total tasks]
|
|
11
|
+
**Question mode:** [...] · **Limit:** [5h % (reset) · weekly %] · **Board:** [state, member count]
|
|
12
12
|
|
|
13
|
-
**
|
|
14
|
-
**
|
|
15
|
-
**
|
|
16
|
-
**
|
|
17
|
-
**
|
|
18
|
-
**
|
|
19
|
-
**
|
|
20
|
-
**
|
|
21
|
-
|
|
13
|
+
**Done in this phase:** [...]
|
|
14
|
+
**Remaining tasks (this phase):** [...]
|
|
15
|
+
**Pending decisions:** [...] ← put first if any
|
|
16
|
+
**Open issues / risks:** [...]
|
|
17
|
+
**Latest decisions:** [last 5: question → chosen (user/automatic)]
|
|
18
|
+
**Latest board meetings:** [last 3: type → result, open criticals]
|
|
19
|
+
**Where we left off:** [if any]
|
|
20
|
+
**Checklists:** Security x/y · Go live x/y · KVKK x/y
|
|
21
|
+
**Suggested next step:** [one concrete command]
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
3.
|
|
25
|
-
4.
|
|
24
|
+
3. If you have a browser tool, open `dashboard.html`. Otherwise give the file path.
|
|
25
|
+
4. If a decision is pending, ask it right away at the end of the report.
|