tillerhand 3.43.0 → 3.47.1
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 +4 -3
- 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 +882 -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,7 +1,7 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Cost Log
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
>
|
|
3
|
+
> How much of the 5-hour limit each job used. The estimates in `docs/workflow/usage-limits.md` §3
|
|
4
|
+
> are replaced with these averages once there are at least 3 rows. Size: K (small) / O (medium) / B (large) / BOARD / DESIGN / FINDINGS.
|
|
5
5
|
|
|
6
|
-
|
|
|
6
|
+
| Date | Job | Size | Start 5h % | End 5h % | Diff | Time (min) | Note |
|
|
7
7
|
|---|---|---|---|---|---|---|---|
|
|
@@ -1,101 +1,101 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Decision Protocol
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
>
|
|
3
|
+
> This project is **question-driven**. The user makes the decisions; the AI prepares the options, recommends, implements and reports.
|
|
4
|
+
> Until the user says "don't ask" about a topic, not a single decision on that topic is made on its own.
|
|
5
5
|
|
|
6
|
-
## 1.
|
|
6
|
+
## 1. What is a decision point?
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Every choice that affects one of the following is a **decision point** and is asked:
|
|
9
9
|
|
|
10
|
-
|
|
|
10
|
+
| Topic (code) | Examples |
|
|
11
11
|
|---|---|
|
|
12
|
-
| `urun` |
|
|
13
|
-
| `teknik` |
|
|
14
|
-
| `tasarim` |
|
|
15
|
-
| `icerik` |
|
|
16
|
-
| `veri` |
|
|
17
|
-
| `guvenlik` |
|
|
18
|
-
| `maliyet` |
|
|
12
|
+
| `urun` | Feature scope, priority, MVP boundary, user flow, price, target audience |
|
|
13
|
+
| `teknik` | Language, framework, database, auth method, hosting, adding a library, API style, architecture, folder structure |
|
|
14
|
+
| `tasarim` | Style direction, color, typeface, page/screen layout, component style, amount of animation, icon set, dark theme |
|
|
15
|
+
| `icerik` | Interface texts, tone of voice, form of address, landing page copy, email texts |
|
|
16
|
+
| `veri` | Data model, fields, relations, retention period, deletion behavior, migration |
|
|
17
|
+
| `guvenlik` | Authorization model, roles, session length, rate limits, personal data handling |
|
|
18
|
+
| `maliyet` | Choice of paid service, plan tier, AI model choice, spending limits |
|
|
19
19
|
|
|
20
|
-
**
|
|
20
|
+
**Not a decision point** (not asked; apply it and report it briefly in the status block): file/variable/function names (follow `docs/product/glossary.md`), the internal layout of code, formatting, repeating a pattern the project has already decided.
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
If unsure, it is a decision point. Ask.
|
|
23
23
|
|
|
24
|
-
## 2.
|
|
24
|
+
## 2. How to ask
|
|
25
25
|
|
|
26
|
-
1. **AskUserQuestion
|
|
27
|
-
2.
|
|
28
|
-
3. **2-4
|
|
29
|
-
4. **
|
|
30
|
-
5.
|
|
31
|
-
6. **
|
|
32
|
-
7.
|
|
33
|
-
8. **
|
|
34
|
-
9. **
|
|
26
|
+
1. **Use the AskUserQuestion tool.** If the tool is missing, write the same structure as a numbered list and wait for the answer.
|
|
27
|
+
2. **Context first (1-3 sentences, inside the question text or right before it):** Which stage are we in, what does this decision affect, is it easy or hard to reverse?
|
|
28
|
+
3. **2-4 options.** Put the one you find best **first**, with **"(Recommended)"** at the end of its label.
|
|
29
|
+
4. **In each option's description:** What it is, when it is better, and what it costs. Example: "Next.js: best for products that need SEO and server-side work, the AI knows this ecosystem best; steeper learning curve and higher hosting cost than a Vite SPA."
|
|
30
|
+
5. **Make the reason for the recommendation specific to this project:** Base it on the user in the PRD, the budget, the scale and the user's earlier decisions. A generic "most popular" reason is not enough.
|
|
31
|
+
6. **At most 4 questions per round.** Group independent questions of the same step into one AskUserQuestion call: every separate call is one more round, and every round re-reads the whole context. Ask dependent decisions in order (framework first, then the library that depends on it).
|
|
32
|
+
7. If the user gives a free answer with "Other", evaluate it too. If you find it risky, say why once; if the user insists, apply it and record it.
|
|
33
|
+
8. **Freshness:** For options that depend on information that can change (version, price, deprecation), do not trust your memory. Research first if needed (`docs/workflow/skills.md` → research).
|
|
34
|
+
9. **Visual preview is mandatory for design decisions.** See section 5.
|
|
35
35
|
|
|
36
|
-
## 2a.
|
|
36
|
+
## 2a. Cost of reversal: one-way / two-way door
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
Classify every decision before asking and state it in the question text:
|
|
39
39
|
|
|
40
|
-
-
|
|
41
|
-
- **
|
|
42
|
-
1.
|
|
43
|
-
2. **
|
|
44
|
-
3.
|
|
45
|
-
4.
|
|
40
|
+
- **Two-way door:** Easy and cheap to change later (button text, color, internal use of a library). Asked normally.
|
|
41
|
+
- **One-way door:** Expensive or impossible to reverse (database, auth provider, data model, payment provider, domain name, personal data handling, store package name, public API contract). Extra rules:
|
|
42
|
+
1. The question text says "One-way decision: changing it later costs [this much]".
|
|
43
|
+
2. **For database and auth decisions** (in the Full profile, all one-way decisions), the **decision council** (`.claude/board/council.md`) meets before you ask; for other one-way decisions, get the opinion of `board-architect` (and `security-auditor` if relevant). Council: 3 advisors answer the same question with different models, rank each other anonymously, and `board-chair` recommends. The recommended option is the council's recommendation; add the council vote and the minority opinion to each option's description. If the limit is red, get the opinion of `board-architect` (and `security-auditor` if relevant) instead of the council.
|
|
44
|
+
3. After the answer an ADR is mandatory: `docs/decisions/adr-NNNN-*.md` (template: `adr-template.md`).
|
|
45
|
+
4. If the user is not in a hurry, for big one-way decisions also offer the option "think about it for a day, then decide".
|
|
46
46
|
|
|
47
|
-
## 3.
|
|
47
|
+
## 3. When the answer arrives
|
|
48
48
|
|
|
49
|
-
1.
|
|
50
|
-
2.
|
|
51
|
-
3.
|
|
52
|
-
4.
|
|
49
|
+
1. Add the decision to the **"Karar günlüğü"** (decision log) table in `docs/decisions/log.md` (date, stage, topic, question, chosen, door: `tek`/`çift`, decided by: `kullanıcı`).
|
|
50
|
+
2. For decisions that affect the architecture or the long term, write an ADR (`docs/decisions/adr-NNNN-*.md`) and add it to the ADR list in `log.md`.
|
|
51
|
+
3. Update the document the decision affects (stack, architecture, design guide, PRD, glossary…).
|
|
52
|
+
4. Then implement.
|
|
53
53
|
|
|
54
|
-
## 4.
|
|
54
|
+
## 4. Question mode
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
The state is kept in the `**Soru modu:**` line of `docs/workflow/progress.md`. Default: `açık · kapalı konular: yok`.
|
|
57
57
|
|
|
58
|
-
|
|
|
58
|
+
| What the user says | What you do |
|
|
59
59
|
|---|---|
|
|
60
|
-
| "
|
|
61
|
-
| "
|
|
62
|
-
| "
|
|
60
|
+
| "don't ask", "never ask", `/ask-mode off hepsi` | All topics closed |
|
|
61
|
+
| "don't ask about design", "you pick the colors", `/ask-mode off tasarim` | Only that topic closed (match it to the topic codes; if unsure, ask which topic is meant) |
|
|
62
|
+
| "ask again", "keep asking", `/ask-mode on [konu\|hepsi]` | Topic(s) open again |
|
|
63
63
|
|
|
64
|
-
**
|
|
64
|
+
**On a closed topic:** Pick the "(Recommended)" option and apply it. Write `karar veren: otomatik` in the log. List it in the "Auto decisions" line of the status block. Even when the design topic is closed, produce the previews under `.previews/` so the user can look later.
|
|
65
65
|
|
|
66
|
-
**
|
|
66
|
+
**Regardless of question mode, always ask for approval:** data deletion, prod deploy, an action that spends money, any command that cannot be undone, the "Never" list in `AGENTS.md`.
|
|
67
67
|
|
|
68
|
-
## 5.
|
|
68
|
+
## 5. Visual preview for design decisions
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
Every `tasarim` decision is asked with visuals. The user chooses an image, not text.
|
|
71
71
|
|
|
72
|
-
1.
|
|
73
|
-
2.
|
|
74
|
-
3.
|
|
75
|
-
4.
|
|
76
|
-
5.
|
|
77
|
-
6.
|
|
78
|
-
7.
|
|
72
|
+
1. Produce one sample per option: `.previews/NN-konu/a.html`, `b.html`, `c.html` (NN is the sequence number). Also an `index.html` that shows them all side by side or one below the other.
|
|
73
|
+
2. Build the samples with **real content** (the product name, real titles and texts from the PRD); no lorem ipsum.
|
|
74
|
+
3. Produce each sample with the skill that `docs/workflow/skills.md` maps to that option. For example, the "Premium" option with the premium design skill, the "Minimal" option with the minimal skill. This makes the difference between options real.
|
|
75
|
+
4. For big decisions (style direction, page layout, home screen), each option is a separate full section. For small decisions (color palette, typeface pair, corner/shadow, button style), side-by-side samples on one comparison page are enough.
|
|
76
|
+
5. Open the preview: If a browser tool exists, open `index.html`, take screenshots at desktop and mobile width and show them. If not, give the file path.
|
|
77
|
+
6. Then ask with AskUserQuestion: options A/B/C, with the difference of each and when it is better in the descriptions. The user may want a mix ("A's layout, B's colors"); verify that with a new preview.
|
|
78
|
+
7. The choice is written to the decision log in `docs/design/design-guide.md` and to `docs/decisions/log.md`. `.previews/` stays out of git.
|
|
79
79
|
|
|
80
|
-
## 6.
|
|
80
|
+
## 6. Status block (at the end of every answer)
|
|
81
81
|
|
|
82
|
-
|
|
82
|
+
In short, compressed language (caveman), at most 4 lines:
|
|
83
83
|
|
|
84
84
|
```
|
|
85
|
-
──
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
85
|
+
── Status ─────────────────────────────
|
|
86
|
+
Phase: Phase 1 · Task: G-012 (7/23) · Question mode: open · Limit: 5h %34 weekly %5
|
|
87
|
+
Done: signup form + validation, tests green · Board: ONAY (ux, qa)
|
|
88
|
+
Auto decisions: none
|
|
89
|
+
Next: G-013 password reset · pending decision: email service
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
-
-
|
|
93
|
-
- Limit:
|
|
94
|
-
-
|
|
95
|
-
- "
|
|
96
|
-
-
|
|
92
|
+
- Phase and task come from `docs/workflow/progress.md`; the task count is checked/total in `docs/product/roadmap.md`.
|
|
93
|
+
- Limit: `get_usage` on desktop, `node .claude/hooks/usage.mjs` in the terminal (if it cannot be read, "unknown").
|
|
94
|
+
- Board: if a meeting happened this turn, its result and attendees.
|
|
95
|
+
- "Next" must always be concrete; if a decision is awaited, say so.
|
|
96
|
+
- In a turn where you only ask a question (waiting for the answer), put the status block as a single line before the question.
|
|
97
97
|
|
|
98
|
-
## 7.
|
|
98
|
+
## 7. Language
|
|
99
99
|
|
|
100
|
-
- **
|
|
101
|
-
- **
|
|
100
|
+
- **Questions, option descriptions, documents and texts the user sees:** Complete sentences, proper prose in the conversation language.
|
|
101
|
+
- **Status block, progress notes, code explanations:** Short and compressed (caveman).
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Learning Log
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
>
|
|
3
|
+
> Answers to the comprehension questions asked at the end of a task while narrator mode is on. The AI adds one row after each answer; an unanswered question is not written.
|
|
4
|
+
> The dashboard shows the number of correct (doğru) and wrong (yanlış) answers and the concepts often missed on the "Product and tech" tab. It is not a grade and is shared with no one.
|
|
5
5
|
|
|
6
6
|
## Kayıtlar
|
|
7
7
|
|
|
8
|
-
|
|
|
8
|
+
| Date | Task | Concept | Result |
|
|
9
9
|
|---|---|---|---|
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
# MCP
|
|
1
|
+
# MCP and plugin catalog
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
>
|
|
3
|
+
> Connections that do not come ready in the template and are opened if the project picks that service. `/start` Step 5 (external services) checks this table and suggests the setup for a matching service.
|
|
4
|
+
> All are the vendor's own official servers (verified: 2026-10-12). Authentication happens in the browser (OAuth) or with your own environment variable; a key is never written to the chat or to a file.
|
|
5
5
|
|
|
6
|
-
##
|
|
6
|
+
## Ready in the project
|
|
7
7
|
|
|
8
|
-
|
|
|
8
|
+
| What | Type | Note |
|
|
9
9
|
|---|---|---|
|
|
10
|
-
| Context7 |
|
|
11
|
-
| Supabase (
|
|
12
|
-
| Maestro |
|
|
13
|
-
| Expo |
|
|
10
|
+
| Context7 | all | Current library docs |
|
|
11
|
+
| Supabase (read-only), Sentry | web, mobile · Sentry for backend | `DEV_REF` is filled in at /start: the **development** project, read-only. The prod ref is not written to the AI environment (.mcp.json, .env.local); if prod needs a look, the user opens the dashboard |
|
|
12
|
+
| Maestro | mobile | Mobile E2E (`.maestro/*.yaml`). The Maestro CLI must be installed: `curl -fsSL "https://get.maestro.mobile.dev" \| bash` (Windows: WSL or docs.maestro.dev) |
|
|
13
|
+
| Expo | mobile | Comes with the `expo@expo-plugins` plugin: EAS build, workflows, TestFlight crash logs. To connect: `/mcp` → sign in with the Expo account. For simulator and screenshots: SDK 54+ and `npx expo install expo-mcp --dev` |
|
|
14
14
|
|
|
15
|
-
##
|
|
15
|
+
## Added when needed (off by default)
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
These servers do not come in `.mcp.json`; the command that needs one asks the user and adds it to this machine (`--scope local`, does not enter git). It can be turned off with `/mcp` when the work is done. On Windows write `cmd /c npx` instead of `npx`.
|
|
18
18
|
|
|
19
|
-
|
|
|
19
|
+
| What | Who asks for it | Setup (verified: 2026-10-23) | Note |
|
|
20
20
|
|---|---|---|---|
|
|
21
|
-
| Playwright MCP |
|
|
22
|
-
| Chrome DevTools MCP | `/findings-perf`, `/findings-ux` | `claude mcp add --scope local chrome-devtools -- npx -y chrome-devtools-mcp@1.10.1` |
|
|
23
|
-
| Figma | `/design` (
|
|
24
|
-
| rea (CLI, MCP
|
|
25
|
-
| Supabase dev (
|
|
21
|
+
| Playwright MCP | Exploratory browser testing, long interactive flow | `claude mcp add --scope local playwright -- npx -y @playwright/mcp@0.0.83` | For screenshots, `node .claude/hooks/preview.mjs`. For interactive trials, use the Playwright CLI first (every command is asked; in the project folder it reads the config file in the repo): `npx -y @playwright/cli@0.1.22 open <url>`, `snapshot`, `console`, `requests`, `screenshot`. The CLI does not force page data into the context, so it spends fewer tokens |
|
|
22
|
+
| Chrome DevTools MCP | `/findings-perf`, `/findings-ux` | `claude mcp add --scope local chrome-devtools -- npx -y chrome-devtools-mcp@1.10.1` | Performance trace (LCP, CLS, INP), network waterfall, console |
|
|
23
|
+
| Figma | `/design` (if the design is in Figma) | `claude mcp add --scope local --transport http figma-remote-mcp https://mcp.figma.com/mcp` | OAuth (`/mcp`). Figma's official plugin (~17 skills) is not used because of the context budget |
|
|
24
|
+
| rea (CLI, not MCP) | `/research` (how a competitor feature works), `/adopt` (a part with no source) | No setup: `npx -y rea-agents@6.2.0 <alt komut>`; subcommands: `npx -y rea-agents@6.2.0 --help`. Needs Node `^22.19` or `>=24.11` | Only software the user owns or is authorized to inspect. The license agreement (EULA) may forbid reverse engineering; commercial tools (IDA, Hopper, JEB) follow their own license. `setup` is not run (it changes agent settings). The analysis is local; inspecting a site sends real requests to that site |
|
|
25
|
+
| Supabase dev (write) | `/build` (trying things in dev) | `claude mcp add --scope local --transport http supabase-dev "https://mcp.supabase.com/mcp?project_ref=DEV_REF&features=database,docs"` | Only the **development** project or branch (`DEV_REF`). The prod ref is never written to this definition. Schema changes are still made with a migration file |
|
|
26
26
|
|
|
27
|
-
##
|
|
27
|
+
## Opened when a service is chosen
|
|
28
28
|
|
|
29
|
-
|
|
|
29
|
+
| Service | Setup | Credentials | Caution |
|
|
30
30
|
|---|---|---|---|
|
|
31
|
-
| GitHub | `/plugin install github@claude-plugins-official` | `GITHUB_PERSONAL_ACCESS_TOKEN`
|
|
32
|
-
| Stripe | `claude mcp add --transport http stripe https://mcp.stripe.com --scope project` | OAuth (`/mcp`) |
|
|
33
|
-
| Vercel | CLI: `npx -y vercel@63.1.1` (`/release`
|
|
34
|
-
| PostHog | `claude mcp add --transport http posthog https://mcp.posthog.com/mcp --scope project` | OAuth (`/mcp`),
|
|
35
|
-
| Firebase | `/plugin install firebase@claude-plugins-official` | Firebase CLI
|
|
36
|
-
| Linear | `/plugin install linear@claude-plugins-official` | OAuth |
|
|
37
|
-
|
|
38
|
-
##
|
|
39
|
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
31
|
+
| GitHub | `/plugin install github@claude-plugins-official` | `GITHUB_PERSONAL_ACCESS_TOKEN` environment variable (fine-grained, only this repo) | Do not give a broad-scope token |
|
|
32
|
+
| Stripe | `claude mcp add --transport http stripe https://mcp.stripe.com --scope project` | OAuth (`/mcp`) | Connect with a test-mode account first |
|
|
33
|
+
| Vercel | CLI: `npx -y vercel@63.1.1` (`/release` uses it). Optional MCP for logs and build status: `claude mcp add --transport http vercel https://mcp.vercel.com --scope project` | `vercel login` / OAuth (`/mcp`) | It can deploy and purchase; `--prod`, `promote`, `rollback` are always asked (shield). The official plugin (30+ skills) is not used because of the context budget |
|
|
34
|
+
| PostHog | `claude mcp add --transport http posthog https://mcp.posthog.com/mcp --scope project` | OAuth (`/mcp`), region automatic | Product analytics and feature flags (`docs/operations/feature-flags.md`) |
|
|
35
|
+
| Firebase | `/plugin install firebase@claude-plugins-official` | Firebase CLI login | If Firebase was chosen instead of Supabase |
|
|
36
|
+
| Linear | `/plugin install linear@claude-plugins-official` | OAuth | If the roadmap will be kept in Linear |
|
|
37
|
+
|
|
38
|
+
## Rule
|
|
39
|
+
|
|
40
|
+
- Every action an MCP tool takes runs with your account's permissions. For tools with write access (Stripe, Vercel, GitHub), no permanent or money-spending action is taken without user approval.
|
|
41
|
+
- Adding a new MCP is a `teknik` decision; if a server not on the list is suggested, first verify its source and maintenance status with `source-research`, and add it to `.mcp.json` with a pinned version.
|
|
42
|
+
- Turn off an MCP you do not use: every tool definition adds load to the context in every session.
|
package/docs/workflow/models.md
CHANGED
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
# Model
|
|
1
|
+
# Model and Effort (per role)
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
> `/build`
|
|
5
|
-
>
|
|
3
|
+
> The kit splits the work into five roles. You choose each role's model and effort (how much it thinks).
|
|
4
|
+
> `/build` asks one question per role (model and effort together) at the start of every task; `/start`, `/adopt` and `/release` ask when they begin. Two screens: first plan, code, test; then review, docs.
|
|
5
|
+
> The choice is written with `node .claude/hooks/models.mjs --set …` to `.claude/state/models.json` (not in git). `node .claude/hooks/models.mjs --show` shows the current choice.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Roles
|
|
8
8
|
|
|
9
|
-
|
|
|
9
|
+
| Role | Key | Work it covers | Recommended |
|
|
10
10
|
|---|---|---|---|
|
|
11
|
-
|
|
|
12
|
-
|
|
|
13
|
-
| Test
|
|
14
|
-
|
|
|
15
|
-
|
|
|
11
|
+
| Planning and architecture | `plan` | Plan, architecture and data model decisions; PRD, README and user-visible text. Runs in the main session. | Opus · high |
|
|
12
|
+
| Code writing | `code` | Application code. Cannot write to test files. In the main session for a small task, otherwise in a subagent. | Sonnet · high |
|
|
13
|
+
| Test writing | `test` | Acceptance and adversarial tests, before the code; the `test-writer` agent. A separate agent from the one writing the code, and the recommended model is different too: the same model shares the same blind spot. | Opus · high |
|
|
14
|
+
| Review and audit | `review` | Board members, `code-reviewer`, `security-auditor`, findings reports (`/findings-all`). | Sonnet · high |
|
|
15
|
+
| Docs and research | `docs` | CHANGELOG, report summary; code scanning, web research (`/research` deep). The decision log is written in the main session at decision time. | Haiku · high |
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
Options in each question (the first is recommended; another combination can be written with "Other"):
|
|
18
18
|
|
|
19
|
-
|
|
|
19
|
+
| Role | Options |
|
|
20
20
|
|---|---|
|
|
21
|
-
| `plan` | Opus ·
|
|
22
|
-
| `code` | Sonnet ·
|
|
23
|
-
| `test` |
|
|
24
|
-
| `review` | Sonnet ·
|
|
25
|
-
| `docs` | Haiku ·
|
|
21
|
+
| `plan` | Opus · high / Opus · extra high / Sonnet · high / Sonnet · medium |
|
|
22
|
+
| `code` | Sonnet · high / Opus · high / Sonnet · medium / Haiku · high |
|
|
23
|
+
| `test` | The model different from the code role's last choice goes first: Opus · high if code is Sonnet, Sonnet · high if code is Opus, Sonnet · high if code is Haiku. Then the other two models and the medium effort of the same model |
|
|
24
|
+
| `review` | Sonnet · high / Opus · high / Sonnet · medium / Haiku · high |
|
|
25
|
+
| `docs` | Haiku · high / Haiku · medium / Sonnet · high / Sonnet · medium |
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
If code and test are set to the same model, `models.mjs` warns but does not block (when the limit is tight, both can be moved to the cheap model).
|
|
28
28
|
|
|
29
|
-
Effort
|
|
29
|
+
Effort scale: low = `low`, medium = `medium`, high = `high`, extra high = `xhigh`. The higher the effort, the slower the answer and the more it takes from the limit.
|
|
30
30
|
|
|
31
|
-
Opus
|
|
31
|
+
Opus is the most expensive model and Haiku the cheapest. When the limit turns yellow or red, the biggest saving is to move the code role to a lower model (`docs/workflow/usage-limits.md` §3). Security, data model and architecture decisions stay in the planning role.
|
|
32
32
|
|
|
33
|
-
## Claude Code
|
|
33
|
+
## How it applies in Claude Code
|
|
34
34
|
|
|
35
|
-
- **
|
|
36
|
-
- **
|
|
37
|
-
- **
|
|
38
|
-
- **Effort:**
|
|
39
|
-
- **
|
|
40
|
-
-
|
|
35
|
+
- **The main session** runs the planning role. The kit cannot change the main session's model: if the chosen plan model or effort differs from the session's, the AI suggests `/model <name>` and `/effort <level>` in one line.
|
|
36
|
+
- **Subagents:** Code writing, review and docs work goes to a subagent with the Agent tool. The call passes the role's `model` and `effort` value; the value in the call overrides the `model:` line in the agent file.
|
|
37
|
+
- **Aliases:** `opus`, `sonnet`, `haiku` (also `fable`) always go to the newest model of that family. To pin to a specific version, use the full model ID or the `ANTHROPIC_DEFAULT_OPUS_MODEL` (SONNET, HAIKU) environment variable.
|
|
38
|
+
- **Effort:** In a subagent call, effort can be passed in Claude Code v2.1.292 and later. If the `CLAUDE_CODE_EFFORT_LEVEL` environment variable is set, it overrides all effort choices. A model may not support every level.
|
|
39
|
+
- **Question mode:** If the `maliyet` topic is closed, no question is asked and the last choice stays valid.
|
|
40
|
+
- **Exceptions:** The commit (light) board review runs on every commit, so it stays at `haiku` and `low` (`.claude/board/rules.md`). The decision council (`.claude/board/council.md`) deliberately compares different models; the role choice does not apply to it.
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
Source: code.claude.com/docs/en/sub-agents, code.claude.com/docs/en/model-config (2026-10-26).
|
|
43
43
|
|
|
44
|
-
## Codex
|
|
44
|
+
## Codex and Antigravity
|
|
45
45
|
|
|
46
46
|
| | Codex | Antigravity |
|
|
47
47
|
|---|---|---|
|
|
48
|
-
|
|
|
49
|
-
|
|
|
50
|
-
|
|
|
48
|
+
| Main session | Model picker and reasoning effort | Model picker and thinking level (Low / Medium / High) |
|
|
49
|
+
| Subagent | `.codex/agents/<ad>.toml` → `model`, `model_reasoning_effort`. Can also be given in the prompt at launch; if not given, it takes the main session's. | `.agents/agents/<ad>.md` → `model: inherit`, `flash` or `pro`. A subagent has no thinking level. |
|
|
50
|
+
| Role equivalent | Opus and Sonnet → strong model, Haiku → fast model (the docs' recommendation on 2026-10-26: `gpt-6.1-sol` and `gpt-6-luna`). Effort names are the same: `low` … `xhigh`. | Opus and Sonnet → `pro`, Haiku → `flash`. |
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
If there is no question tool with options (Codex), ask the two screens as a numbered list. If you cannot run a subagent, run the role yourself and suggest the model in text.
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
Source: developers.openai.com/codex/subagents, antigravity.google/docs/subagents, antigravity.google/docs/models (2026-10-26).
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Progress
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
>
|
|
5
|
-
>
|
|
3
|
+
> This file is loaded into the AI automatically in every session. **Do not exceed 40 lines.**
|
|
4
|
+
> It holds only the current state; history lives in `CHANGELOG.md`, `docs/decisions/log.md` and git.
|
|
5
|
+
> The status line and the `/dashboard` read the **bold-labeled** lines below; do not break their format.
|
|
6
6
|
|
|
7
7
|
**Son güncelleme:** -
|
|
8
8
|
**Aktif faz:** Başlangıç
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
## Şu anki durum
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
The project has not started yet. Start with `/start [fikir]`.
|
|
17
17
|
|
|
18
18
|
## Son oturumda yapılanlar
|
|
19
19
|
|
|
@@ -27,7 +27,7 @@ Proje henüz başlamadı. `/start [fikir]` ile başla.
|
|
|
27
27
|
|
|
28
28
|
-
|
|
29
29
|
|
|
30
|
-
## Kaldığı yer (
|
|
30
|
+
## Kaldığı yer (if stopped because of a limit or midway)
|
|
31
31
|
|
|
32
32
|
-
|
|
33
33
|
|
|
@@ -35,6 +35,6 @@ Proje henüz başlamadı. `/start [fikir]` ile başla.
|
|
|
35
35
|
|
|
36
36
|
-
|
|
37
37
|
|
|
38
|
-
##
|
|
38
|
+
## Watch out (notes for the AI)
|
|
39
39
|
|
|
40
40
|
-
|