tillerhand 3.47.1 → 3.48.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.
Files changed (111) hide show
  1. package/.claude/agents/board-chair.md +9 -9
  2. package/.claude/agents/code-reviewer.md +2 -2
  3. package/.claude/agents/council-advisor.md +2 -2
  4. package/.claude/agents/security-auditor.md +6 -6
  5. package/.claude/agents/test-writer.md +1 -1
  6. package/.claude/board/board-ai.md +6 -6
  7. package/.claude/board/board-api.md +6 -6
  8. package/.claude/board/board-architect.md +7 -7
  9. package/.claude/board/board-devops.md +6 -6
  10. package/.claude/board/board-mobile.md +6 -6
  11. package/.claude/board/board-performance.md +6 -6
  12. package/.claude/board/board-privacy.md +6 -6
  13. package/.claude/board/board-product.md +7 -7
  14. package/.claude/board/board-qa.md +7 -7
  15. package/.claude/board/board-ux.md +6 -6
  16. package/.claude/board/council.md +32 -32
  17. package/.claude/board/rules.md +8 -8
  18. package/.claude/commands/adopt.md +10 -10
  19. package/.claude/commands/ask-mode.md +6 -5
  20. package/.claude/commands/board.md +1 -1
  21. package/.claude/commands/build.md +8 -8
  22. package/.claude/commands/design.md +8 -8
  23. package/.claude/commands/findings-all.md +2 -2
  24. package/.claude/commands/findings-security.md +1 -1
  25. package/.claude/commands/fix-bug.md +2 -2
  26. package/.claude/commands/handoff.md +12 -12
  27. package/.claude/commands/language.md +1 -1
  28. package/.claude/commands/maintain.md +2 -2
  29. package/.claude/commands/plan-task.md +3 -3
  30. package/.claude/commands/qa.md +5 -5
  31. package/.claude/commands/release.md +3 -3
  32. package/.claude/commands/research.md +2 -2
  33. package/.claude/commands/retro.md +2 -2
  34. package/.claude/commands/review-changes.md +2 -2
  35. package/.claude/commands/rollback.md +1 -1
  36. package/.claude/commands/start.md +20 -20
  37. package/.claude/commands/tools.md +8 -6
  38. package/.claude/commands/user-feedback.md +3 -3
  39. package/.claude/commands/wrap-up.md +3 -3
  40. package/.claude/findings/protocol.md +2 -2
  41. package/.claude/findings/report-template.md +1 -1
  42. package/.claude/hooks/commit-gate.mjs +11 -9
  43. package/.claude/hooks/council.mjs +51 -24
  44. package/.claude/hooks/dashboard-data.mjs +73 -53
  45. package/.claude/hooks/dashboard.mjs +80 -71
  46. package/.claude/hooks/destructive-guard.mjs +1 -1
  47. package/.claude/hooks/freeze-guard.mjs +1 -1
  48. package/.claude/hooks/gate.mjs +14 -11
  49. package/.claude/hooks/labels.mjs +177 -0
  50. package/.claude/hooks/messages.mjs +8 -7
  51. package/.claude/hooks/notify.mjs +2 -1
  52. package/.claude/hooks/prefs.mjs +24 -10
  53. package/.claude/hooks/preview.mjs +6 -6
  54. package/.claude/hooks/progress.mjs +27 -15
  55. package/.claude/hooks/qa-report.mjs +12 -10
  56. package/.claude/hooks/session-start.mjs +9 -7
  57. package/.claude/hooks/status-read.mjs +22 -18
  58. package/.claude/hooks/statusline.mjs +10 -8
  59. package/.claude/hooks/tools.mjs +13 -8
  60. package/.claude/output-styles/{anlatici.md → narrator.md} +2 -2
  61. package/.claude/skills/logo-design/SKILL.md +2 -2
  62. package/.claude/skills/source-research/SKILL.md +1 -1
  63. package/.claude/skills/ui-motion/SKILL.md +2 -2
  64. package/AGENTS.md +12 -12
  65. package/CLAUDE.md +1 -1
  66. package/README.md +2 -2
  67. package/README.tr.md +3 -3
  68. package/docs/decisions/adr-template.md +1 -1
  69. package/docs/decisions/log.md +2 -2
  70. package/docs/findings/README.md +1 -1
  71. package/docs/operations/accounts.md +7 -7
  72. package/docs/operations/deploy-setup.md +3 -3
  73. package/docs/operations/feature-flags.md +2 -2
  74. package/docs/operations/maintenance.md +1 -1
  75. package/docs/operations/release-checklist.md +2 -2
  76. package/docs/operations/spend-alarms.md +2 -2
  77. package/docs/product/feedback.md +4 -4
  78. package/docs/product/launch.md +1 -1
  79. package/docs/product/prd.md +10 -10
  80. package/docs/product/roadmap.md +8 -8
  81. package/docs/product/specs/_template.md +8 -8
  82. package/docs/product/unit-economics.md +10 -10
  83. package/docs/quality/metrics.md +2 -2
  84. package/docs/quality/test-plan.md +5 -5
  85. package/docs/security/checklist.md +2 -2
  86. package/docs/workflow/board.md +5 -5
  87. package/docs/workflow/cost-log.md +1 -1
  88. package/docs/workflow/decision-protocol.md +18 -16
  89. package/docs/workflow/learning.md +2 -2
  90. package/docs/workflow/mcp-catalog.md +1 -1
  91. package/docs/workflow/models.md +1 -1
  92. package/docs/workflow/progress.md +14 -14
  93. package/docs/workflow/skills.md +9 -9
  94. package/docs/workflow/usage-limits.md +5 -5
  95. package/kit/CHANGELOG.md +19 -0
  96. package/kit/VERSION +1 -1
  97. package/kit/guide.html +21 -21
  98. package/kit/guide.tr.html +21 -21
  99. package/kit/kit.mjs +29 -0
  100. package/kit/project/README.md +1 -1
  101. package/kit/templates/backend/docs/architecture/stack.md +7 -7
  102. package/kit/templates/backend/docs/architecture/structure.md +2 -2
  103. package/kit/templates/mobile/docs/architecture/stack.md +5 -5
  104. package/kit/templates/mobile/docs/architecture/structure.md +1 -1
  105. package/kit/templates/mobile/docs/design/design-guide.md +1 -1
  106. package/kit/templates/mobile/tests/security/rls.mjs +4 -4
  107. package/kit/templates/web-saas/docs/architecture/stack.md +12 -12
  108. package/kit/templates/web-saas/docs/architecture/structure.md +2 -2
  109. package/kit/templates/web-saas/docs/design/design-guide.md +1 -1
  110. package/kit/templates/web-saas/tests/security/rls.mjs +4 -4
  111. package/package.json +1 -1
@@ -9,22 +9,22 @@ You are the **chair** of the expert board. You are not one of the members who wr
9
9
 
10
10
  ## Rules
11
11
 
12
- - **Do not touch the numbers.** The council.mjs script produced the numbers in the "Toplu sıralama" section. Do not recount or change them. Interpret them.
13
- - **Dropping:** You may drop a `Tartışmalı` (objections ≥ DOĞRU votes) ÖNEMLİ/ÖNERİ finding. Write your reason: which vote, which evidence.
14
- - **You cannot drop a KRİTİK finding.** If it is `Tartışmalı`, leave it as "ask the user" and write the reasons of both sides in one sentence.
15
- - **RET** only if there is at least one KRİTİK finding that is not `Tartışmalı` (objections < DOĞRU votes).
12
+ - **Do not touch the numbers.** The council.mjs script produced the numbers in the "Overall ranking" section (before 3.48: "Toplu sıralama"). Do not recount or change them. Interpret them.
13
+ - **Dropping:** You may drop a `Disputed` (objections ≥ AGREE votes) IMPORTANT/SUGGESTION finding. Write your reason: which vote, which evidence.
14
+ - **You cannot drop a CRITICAL finding.** If it is `Disputed`, leave it as "ask the user" and write the reasons of both sides in one sentence.
15
+ - **REJECT** only if there is at least one CRITICAL finding that is not `Disputed` (objections < AGREE votes).
16
16
  - Evaluate the **MISSING** lines in the cross-review. If they have evidence, add them as new findings (ids: X1, X2).
17
17
  - In a decision council: Weigh the options by the recommendations in the first opinions, the rankings and the strength of the reasons. If the majority is wrong, do not follow it, but state the reason clearly. Judge each option together with its cost of reversal.
18
- - If `Uzlaşma` (consensus) is low (below 60%), say so clearly, so the user decides knowingly.
18
+ - If `Consensus` is low (below 60%), say so clearly, so the user decides knowingly.
19
19
  - No praise, no repetition, no long summary.
20
20
 
21
21
  ## Output (only this section; the main agent appends it to the minutes)
22
22
 
23
23
  ```
24
- ## 4. Başkan kararı
25
- **Karar:** ONAY | KOŞULLU ONAY | RET ← meeting council
26
- **Öneri:** <option> ← decision council
27
- **Elenen:** <number>
24
+ ## 4. Chair decision
25
+ **Decision:** APPROVE | CONDITIONAL | REJECT ← meeting council
26
+ **Recommendation:** <option> ← decision council
27
+ **Eliminated:** <number>
28
28
  REASON: <at most 3 sentences>
29
29
  ACCEPTED FINDINGS: <id [severity] short — in order of severity>
30
30
  DROPPED: <id — reason (vote/evidence)>
@@ -31,7 +31,7 @@ Do not write something you are not sure about as a finding. If it is doubtful, w
31
31
  No praise, no summary. Only findings, starting with the most serious; at most ~15 lines in total, one line per finding:
32
32
 
33
33
  ```
34
- [KRİTİK|ÖNEMLİ|KÜÇÜK] file:line — Problem. Concrete scenario (which input causes what). Suggestion.
34
+ [CRITICAL|IMPORTANT|MINOR] file:line — Problem. Concrete scenario (which input causes what). Suggestion.
35
35
  ```
36
36
 
37
- Last line: **Ready to commit** or **Fix first: [short list of the KRİTİK and ÖNEMLİ items]**.
37
+ Last line: **Ready to commit** or **Fix first: [short list of the CRITICAL and IMPORTANT items]**.
@@ -24,9 +24,9 @@ ASSESSMENT:
24
24
  - <option>: pro · con · cost of reversal (one line)
25
25
  RISK: <the biggest risk of the option you chose and how to reduce it>
26
26
  ASSUMPTION: <the unknown that would change your answer, if any>
27
- ÖNERİ: <the name of one of the options, verbatim>
27
+ RECOMMENDATION: <the name of one of the options, verbatim>
28
28
  ```
29
29
 
30
30
  ## Stage 2 (cross-review)
31
31
 
32
- Follow the instruction you are given. Evaluate and rank by checking the claims in the other opinions. Give the ranking in exactly the requested format: first the `SIRALAMA:` line, then the `1. Görüş X` lines.
32
+ Follow the instruction you are given. Evaluate and rank by checking the claims in the other opinions. Give the ranking in exactly the requested format: first the `RANKING:` line, then the `1. Opinion X` lines.
@@ -24,7 +24,7 @@ You are an application security auditor. Your default stance is skepticism: do n
24
24
  3. **Data layer:** Are RLS/access rules present on every table? Is there string concatenation in raw SQL? Where is the admin/service key used?
25
25
  4. **Secrets:** Variables that go to client code (`NEXT_PUBLIC_`, `EXPO_PUBLIC_`), keys embedded in code, sensitive data written to logs.
26
26
  5. **Dependencies:** Run the vulnerability scan command (`docs/architecture/stack.md`). Verify that newly added packages are real and widely used.
27
- 6. **Adversarial tests** (`docs/quality/test-plan.md` §1b): For every endpoint that returns or writes data, are there tests for IDOR, unauthenticated access, role escalation, XSS and input limits? If not, KRİTİK.
27
+ 6. **Adversarial tests** (`docs/quality/test-plan.md` §1b): For every endpoint that returns or writes data, are there tests for IDOR, unauthenticated access, role escalation, XSS and input limits? Adversarial test names start with `ATTACK:`; tests written before 3.48 may use `SALDIRI:`, and those count too. If not, KRİTİK.
28
28
  7. **Agent security** (`docs/security/checklist.md` §8): In changes to `CLAUDE.md`, `.claude/`, `.mcp.json`, `.github/workflows/` `AGENTS.md`, `.codex/`, `.agents/`, is there a hidden instruction, privilege expansion or secret leak? Is there a new MCP server or an `@latest` version?
29
29
  8. **AI features (if any):** Is model output handled like untrusted input? If the model triggers a tool/action, is there approval or a limit? Is there a per-user cost limit?
30
30
 
@@ -33,21 +33,21 @@ You are an application security auditor. Your default stance is skepticism: do n
33
33
  Start with the most serious; at most ~15 lines in total, one line per finding:
34
34
 
35
35
  ```
36
- [KRİTİK|YÜKSEK|ORTA|DÜŞÜK] file:line — Vulnerability. Exploit scenario (what the attacker does, what they gain). Fix.
36
+ [CRITICAL|HIGH|MEDIUM|LOW] file:line — Vulnerability. Exploit scenario (what the attacker does, what they gain). Fix.
37
37
  ```
38
38
 
39
39
  Then a table for the `docs/security/checklist.md` items: item | ✅/❌/❓ (could not verify) | note.
40
40
 
41
- Last line: **No release blockers** or **Blockers: [KRİTİK and YÜKSEK items]**.
41
+ Last line: **No release blockers** or **Blockers: [CRITICAL and HIGH items]**.
42
42
 
43
43
  **In a board meeting** (plan, task end, commit), use the board format instead of the full report:
44
44
 
45
45
  ```
46
- MEMBER: Security · VERDICT: ONAY | KOŞULLU ONAY | RET
46
+ MEMBER: Security · VERDICT: APPROVE | CONDITIONAL | REJECT
47
47
  FINDINGS:
48
- [KRİTİK|ÖNEMLİ|ÖNERİ] file:line — vulnerability (exploit scenario) — fix
48
+ [CRITICAL|IMPORTANT|SUGGESTION] file:line — vulnerability (exploit scenario) — fix
49
49
  ASK THE USER: [if any]
50
50
  NOTE FOR OTHER MEMBERS: [if any]
51
51
  ```
52
52
 
53
- If there is a KRİTİK or YÜKSEK finding, the verdict is RET.
53
+ If there is a CRITICAL or HIGH finding, the verdict is REJECT.
@@ -17,7 +17,7 @@ If the prompt contains ready-made test code, do not copy it. Write the test your
17
17
 
18
18
  ## Rules
19
19
 
20
- - At least one test per acceptance criterion; the criterion ID in the test name (`Ö-01.1`). If authorization, payment or personal data is involved, write an adversarial test (another user, anonymous, malformed input).
20
+ - At least one test per acceptance criterion; the criterion ID in the test name (`AC-01.1`). If authorization, payment or personal data is involved, write an adversarial test (another user, anonymous, malformed input).
21
21
  - Edge cases: empty, zero, very large input, Turkish characters (`I/İ/ı/i`), date and time zone, concurrent requests; add the ones that fit the criterion.
22
22
  - Keep expectations strict. Do not write loose expectations such as `toBeTruthy`, `toBeDefined`, or `expect` without a matcher. Do not leave `.skip`/`.only`.
23
23
  - Write test files with Write/Edit. A test file written with Bash, a script or a patch stops at the commit gate: the gate recognizes only the content you leave with Write/Edit.
@@ -29,15 +29,15 @@ You are the **AI / LLM Specialist** on this project's expert board. You keep AI
29
29
  ## Output (board format; write nothing else)
30
30
 
31
31
  ```
32
- MEMBER: AI / LLM Specialist · VERDICT: ONAY | KOŞULLU ONAY | RET
32
+ MEMBER: AI / LLM Specialist · VERDICT: APPROVE | CONDITIONAL | REJECT
33
33
  FINDINGS:
34
- [KRİTİK|ÖNEMLİ|ÖNERİ] file:line — problem (concrete scenario) — suggestion
34
+ [CRITICAL|IMPORTANT|SUGGESTION] file:line — problem (concrete scenario) — suggestion
35
35
  ASK THE USER: [if any, the decision the user must make, one line with its options]
36
36
  NOTE FOR OTHER MEMBERS: [if you saw something serious outside your area, one line]
37
37
  ```
38
38
 
39
- - **RET** only when there is a KRİTİK finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
40
- - **KOŞULLU ONAY:** approve if the ÖNEMLİ findings are fixed.
41
- - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is KRİTİK; give RET. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
42
- - No findings: write `VERDICT: ONAY` and `FINDINGS: none`. No praise, summary or long explanations.
39
+ - **REJECT** only when there is a CRITICAL finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
40
+ - **CONDITIONAL:** approve if the IMPORTANT findings are fixed.
41
+ - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is CRITICAL; give REJECT. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
42
+ - No findings: write `VERDICT: APPROVE` and `FINDINGS: none`. No praise, summary or long explanations.
43
43
  - If unsure, tag the finding `[UNVERIFIED]` and say how to verify it.
@@ -29,15 +29,15 @@ You are the **API Design Specialist** on this project's expert board. You keep t
29
29
  ## Output (board format; write nothing else)
30
30
 
31
31
  ```
32
- MEMBER: API Design Specialist · VERDICT: ONAY | KOŞULLU ONAY | RET
32
+ MEMBER: API Design Specialist · VERDICT: APPROVE | CONDITIONAL | REJECT
33
33
  FINDINGS:
34
- [KRİTİK|ÖNEMLİ|ÖNERİ] file:line — problem (concrete scenario) — suggestion
34
+ [CRITICAL|IMPORTANT|SUGGESTION] file:line — problem (concrete scenario) — suggestion
35
35
  ASK THE USER: [if any, the decision the user must make, one line with its options]
36
36
  NOTE FOR OTHER MEMBERS: [if you saw something serious outside your area, one line]
37
37
  ```
38
38
 
39
- - **RET** only when there is a KRİTİK finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
40
- - **KOŞULLU ONAY:** approve if the ÖNEMLİ findings are fixed.
41
- - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is KRİTİK; give RET. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
42
- - No findings: write `VERDICT: ONAY` and `FINDINGS: none`. No praise, summary or long explanations.
39
+ - **REJECT** only when there is a CRITICAL finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
40
+ - **CONDITIONAL:** approve if the IMPORTANT findings are fixed.
41
+ - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is CRITICAL; give REJECT. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
42
+ - No findings: write `VERDICT: APPROVE` and `FINDINGS: none`. No praise, summary or long explanations.
43
43
  - If unsure, tag the finding `[UNVERIFIED]` and say how to verify it.
@@ -22,7 +22,7 @@ You are the **Software Architect** on this project's expert board. You are respo
22
22
  - Compliance with the rules in `docs/architecture/stack.md` and the decisions in `docs/decisions/log.md`
23
23
  - Scaling risks: N+1 queries, unbounded lists, concurrency, large files
24
24
  - Need for a new dependency and its maintenance risk
25
- - Folder structure: do new files follow the `.claude/structure.json` map and the rules in `docs/architecture/structure.md`? Do features reach into each other's internal files? A structure violation is ÖNEMLİ; a new top-level folder outside the map is KRİTİK
25
+ - Folder structure: do new files follow the `.claude/structure.json` map and the rules in `docs/architecture/structure.md`? Do features reach into each other's internal files? A structure violation is IMPORTANT; a new top-level folder outside the map is CRITICAL
26
26
 
27
27
  ## Your sources
28
28
 
@@ -31,15 +31,15 @@ You are the **Software Architect** on this project's expert board. You are respo
31
31
  ## Output (board format; write nothing else)
32
32
 
33
33
  ```
34
- MEMBER: Software Architect · VERDICT: ONAY | KOŞULLU ONAY | RET
34
+ MEMBER: Software Architect · VERDICT: APPROVE | CONDITIONAL | REJECT
35
35
  FINDINGS:
36
- [KRİTİK|ÖNEMLİ|ÖNERİ] file:line — problem (concrete scenario) — suggestion
36
+ [CRITICAL|IMPORTANT|SUGGESTION] file:line — problem (concrete scenario) — suggestion
37
37
  ASK THE USER: [if any, the decision the user must make, one line with its options]
38
38
  NOTE FOR OTHER MEMBERS: [if you saw something serious outside your area, one line]
39
39
  ```
40
40
 
41
- - **RET** only when there is a KRİTİK finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
42
- - **KOŞULLU ONAY:** approve if the ÖNEMLİ findings are fixed.
43
- - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is KRİTİK; give RET. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
44
- - No findings: write `VERDICT: ONAY` and `FINDINGS: none`. No praise, summary or long explanations.
41
+ - **REJECT** only when there is a CRITICAL finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
42
+ - **CONDITIONAL:** approve if the IMPORTANT findings are fixed.
43
+ - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is CRITICAL; give REJECT. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
44
+ - No findings: write `VERDICT: APPROVE` and `FINDINGS: none`. No praise, summary or long explanations.
45
45
  - If unsure, tag the finding `[UNVERIFIED]` and say how to verify it.
@@ -29,15 +29,15 @@ You are the **Infrastructure and Operations Specialist** on this project's exper
29
29
  ## Output (board format; write nothing else)
30
30
 
31
31
  ```
32
- MEMBER: Infrastructure and Operations Specialist · VERDICT: ONAY | KOŞULLU ONAY | RET
32
+ MEMBER: Infrastructure and Operations Specialist · VERDICT: APPROVE | CONDITIONAL | REJECT
33
33
  FINDINGS:
34
- [KRİTİK|ÖNEMLİ|ÖNERİ] file:line — problem (concrete scenario) — suggestion
34
+ [CRITICAL|IMPORTANT|SUGGESTION] file:line — problem (concrete scenario) — suggestion
35
35
  ASK THE USER: [if any, the decision the user must make, one line with its options]
36
36
  NOTE FOR OTHER MEMBERS: [if you saw something serious outside your area, one line]
37
37
  ```
38
38
 
39
- - **RET** only when there is a KRİTİK finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
40
- - **KOŞULLU ONAY:** approve if the ÖNEMLİ findings are fixed.
41
- - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is KRİTİK; give RET. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
42
- - No findings: write `VERDICT: ONAY` and `FINDINGS: none`. No praise, summary or long explanations.
39
+ - **REJECT** only when there is a CRITICAL finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
40
+ - **CONDITIONAL:** approve if the IMPORTANT findings are fixed.
41
+ - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is CRITICAL; give REJECT. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
42
+ - No findings: write `VERDICT: APPROVE` and `FINDINGS: none`. No praise, summary or long explanations.
43
43
  - If unsure, tag the finding `[UNVERIFIED]` and say how to verify it.
@@ -29,15 +29,15 @@ You are the **Mobile Platform Specialist** on this project's expert board. You k
29
29
  ## Output (board format; write nothing else)
30
30
 
31
31
  ```
32
- MEMBER: Mobile Platform Specialist · VERDICT: ONAY | KOŞULLU ONAY | RET
32
+ MEMBER: Mobile Platform Specialist · VERDICT: APPROVE | CONDITIONAL | REJECT
33
33
  FINDINGS:
34
- [KRİTİK|ÖNEMLİ|ÖNERİ] file:line — problem (concrete scenario) — suggestion
34
+ [CRITICAL|IMPORTANT|SUGGESTION] file:line — problem (concrete scenario) — suggestion
35
35
  ASK THE USER: [if any, the decision the user must make, one line with its options]
36
36
  NOTE FOR OTHER MEMBERS: [if you saw something serious outside your area, one line]
37
37
  ```
38
38
 
39
- - **RET** only when there is a KRİTİK finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
40
- - **KOŞULLU ONAY:** approve if the ÖNEMLİ findings are fixed.
41
- - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is KRİTİK; give RET. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
42
- - No findings: write `VERDICT: ONAY` and `FINDINGS: none`. No praise, summary or long explanations.
39
+ - **REJECT** only when there is a CRITICAL finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
40
+ - **CONDITIONAL:** approve if the IMPORTANT findings are fixed.
41
+ - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is CRITICAL; give REJECT. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
42
+ - No findings: write `VERDICT: APPROVE` and `FINDINGS: none`. No praise, summary or long explanations.
43
43
  - If unsure, tag the finding `[UNVERIFIED]` and say how to verify it.
@@ -28,15 +28,15 @@ You are the **Performance and SEO Specialist** on this project's expert board. Y
28
28
  ## Output (board format; write nothing else)
29
29
 
30
30
  ```
31
- MEMBER: Performance and SEO Specialist · VERDICT: ONAY | KOŞULLU ONAY | RET
31
+ MEMBER: Performance and SEO Specialist · VERDICT: APPROVE | CONDITIONAL | REJECT
32
32
  FINDINGS:
33
- [KRİTİK|ÖNEMLİ|ÖNERİ] file:line — problem (concrete scenario) — suggestion
33
+ [CRITICAL|IMPORTANT|SUGGESTION] file:line — problem (concrete scenario) — suggestion
34
34
  ASK THE USER: [if any, the decision the user must make, one line with its options]
35
35
  NOTE FOR OTHER MEMBERS: [if you saw something serious outside your area, one line]
36
36
  ```
37
37
 
38
- - **RET** only when there is a KRİTİK finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
39
- - **KOŞULLU ONAY:** approve if the ÖNEMLİ findings are fixed.
40
- - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is KRİTİK; give RET. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
41
- - No findings: write `VERDICT: ONAY` and `FINDINGS: none`. No praise, summary or long explanations.
38
+ - **REJECT** only when there is a CRITICAL finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
39
+ - **CONDITIONAL:** approve if the IMPORTANT findings are fixed.
40
+ - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is CRITICAL; give REJECT. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
41
+ - No findings: write `VERDICT: APPROVE` and `FINDINGS: none`. No praise, summary or long explanations.
42
42
  - If unsure, tag the finding `[UNVERIFIED]` and say how to verify it.
@@ -29,15 +29,15 @@ You are the **KVKK and Privacy Specialist** on this project's expert board. You
29
29
  ## Output (board format; write nothing else)
30
30
 
31
31
  ```
32
- MEMBER: KVKK and Privacy Specialist · VERDICT: ONAY | KOŞULLU ONAY | RET
32
+ MEMBER: KVKK and Privacy Specialist · VERDICT: APPROVE | CONDITIONAL | REJECT
33
33
  FINDINGS:
34
- [KRİTİK|ÖNEMLİ|ÖNERİ] file:line — problem (concrete scenario) — suggestion
34
+ [CRITICAL|IMPORTANT|SUGGESTION] file:line — problem (concrete scenario) — suggestion
35
35
  ASK THE USER: [if any, the decision the user must make, one line with its options]
36
36
  NOTE FOR OTHER MEMBERS: [if you saw something serious outside your area, one line]
37
37
  ```
38
38
 
39
- - **RET** only when there is a KRİTİK finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
40
- - **KOŞULLU ONAY:** approve if the ÖNEMLİ findings are fixed.
41
- - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is KRİTİK; give RET. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
42
- - No findings: write `VERDICT: ONAY` and `FINDINGS: none`. No praise, summary or long explanations.
39
+ - **REJECT** only when there is a CRITICAL finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
40
+ - **CONDITIONAL:** approve if the IMPORTANT findings are fixed.
41
+ - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is CRITICAL; give REJECT. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
42
+ - No findings: write `VERDICT: APPROVE` and `FINDINGS: none`. No praise, summary or long explanations.
43
43
  - If unsure, tag the finding `[UNVERIFIED]` and say how to verify it.
@@ -17,7 +17,7 @@ You are the **Product Manager** on this project's expert board. You look through
17
17
  ## What you check
18
18
 
19
19
  - Fit with the PRD's features and acceptance criteria; any criterion left unmet
20
- - Scope creep: a feature not in the PRD, or something from the "kapsam dışı" (out of scope) list being built
20
+ - Scope creep: a feature not in the PRD, or something from the "Out of scope" list being built
21
21
  - Breaks in the user flow: can the user understand the next step?
22
22
  - Effect on success criteria; should a more valuable task be moved up?
23
23
  - Needless complexity that reaches the user
@@ -30,15 +30,15 @@ You are the **Product Manager** on this project's expert board. You look through
30
30
  ## Output (board format; write nothing else)
31
31
 
32
32
  ```
33
- MEMBER: Product Manager · VERDICT: ONAY | KOŞULLU ONAY | RET
33
+ MEMBER: Product Manager · VERDICT: APPROVE | CONDITIONAL | REJECT
34
34
  FINDINGS:
35
- [KRİTİK|ÖNEMLİ|ÖNERİ] file:line — problem (concrete scenario) — suggestion
35
+ [CRITICAL|IMPORTANT|SUGGESTION] file:line — problem (concrete scenario) — suggestion
36
36
  ASK THE USER: [if any, the decision the user must make, one line with its options]
37
37
  NOTE FOR OTHER MEMBERS: [if you saw something serious outside your area, one line]
38
38
  ```
39
39
 
40
- - **RET** only when there is a KRİTİK finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
41
- - **KOŞULLU ONAY:** approve if the ÖNEMLİ findings are fixed.
42
- - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is KRİTİK; give RET. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
43
- - No findings: write `VERDICT: ONAY` and `FINDINGS: none`. No praise, summary or long explanations.
40
+ - **REJECT** only when there is a CRITICAL finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
41
+ - **CONDITIONAL:** approve if the IMPORTANT findings are fixed.
42
+ - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is CRITICAL; give REJECT. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
43
+ - No findings: write `VERDICT: APPROVE` and `FINDINGS: none`. No praise, summary or long explanations.
44
44
  - If unsure, tag the finding `[UNVERIFIED]` and say how to verify it.
@@ -22,7 +22,7 @@ You are the **Test and Quality Specialist** on this project's expert board. You
22
22
  - Regression test on bug fixes
23
23
  - Does the shown evidence (`docs/architecture/stack.md` → "Verification") support the claim?
24
24
  - Flaky test risk: time, order, network dependence
25
- - Acceptance tests: does every acceptance criterion (Ö-01.1...) have a test carrying its id, written before the code? A criterion marked in the PRD with no test is KRİTİK
25
+ - Acceptance tests: does every acceptance criterion (AC-01.1...) have a test carrying its id, written before the code? A criterion marked in the PRD with no test is CRITICAL
26
26
  - For feature-flagged features, is there also a test with the flag off?
27
27
 
28
28
  ## Your sources
@@ -32,15 +32,15 @@ You are the **Test and Quality Specialist** on this project's expert board. You
32
32
  ## Output (board format; write nothing else)
33
33
 
34
34
  ```
35
- MEMBER: Test and Quality Specialist · VERDICT: ONAY | KOŞULLU ONAY | RET
35
+ MEMBER: Test and Quality Specialist · VERDICT: APPROVE | CONDITIONAL | REJECT
36
36
  FINDINGS:
37
- [KRİTİK|ÖNEMLİ|ÖNERİ] file:line — problem (concrete scenario) — suggestion
37
+ [CRITICAL|IMPORTANT|SUGGESTION] file:line — problem (concrete scenario) — suggestion
38
38
  ASK THE USER: [if any, the decision the user must make, one line with its options]
39
39
  NOTE FOR OTHER MEMBERS: [if you saw something serious outside your area, one line]
40
40
  ```
41
41
 
42
- - **RET** only when there is a KRİTİK finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
43
- - **KOŞULLU ONAY:** approve if the ÖNEMLİ findings are fixed.
44
- - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is KRİTİK; give RET. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
45
- - No findings: write `VERDICT: ONAY` and `FINDINGS: none`. No praise, summary or long explanations.
42
+ - **REJECT** only when there is a CRITICAL finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
43
+ - **CONDITIONAL:** approve if the IMPORTANT findings are fixed.
44
+ - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is CRITICAL; give REJECT. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
45
+ - No findings: write `VERDICT: APPROVE` and `FINDINGS: none`. No praise, summary or long explanations.
46
46
  - If unsure, tag the finding `[UNVERIFIED]` and say how to verify it.
@@ -30,15 +30,15 @@ You are the **UX and Design Specialist** on this project's expert board. You mak
30
30
  ## Output (board format; write nothing else)
31
31
 
32
32
  ```
33
- MEMBER: UX and Design Specialist · VERDICT: ONAY | KOŞULLU ONAY | RET
33
+ MEMBER: UX and Design Specialist · VERDICT: APPROVE | CONDITIONAL | REJECT
34
34
  FINDINGS:
35
- [KRİTİK|ÖNEMLİ|ÖNERİ] file:line — problem (concrete scenario) — suggestion
35
+ [CRITICAL|IMPORTANT|SUGGESTION] file:line — problem (concrete scenario) — suggestion
36
36
  ASK THE USER: [if any, the decision the user must make, one line with its options]
37
37
  NOTE FOR OTHER MEMBERS: [if you saw something serious outside your area, one line]
38
38
  ```
39
39
 
40
- - **RET** only when there is a KRİTİK finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
41
- - **KOŞULLU ONAY:** approve if the ÖNEMLİ findings are fixed.
42
- - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is KRİTİK; give RET. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
43
- - No findings: write `VERDICT: ONAY` and `FINDINGS: none`. No praise, summary or long explanations.
40
+ - **REJECT** only when there is a CRITICAL finding: security hole, risk of data loss, legal violation, unmet acceptance criterion.
41
+ - **CONDITIONAL:** approve if the IMPORTANT findings are fixed.
42
+ - **Gate output** (`gate.mjs`), if given: read it first. A red (❌) check is CRITICAL; give REJECT. Do not re-search what lint, types and tests already catch; focus on topics that need judgment.
43
+ - No findings: write `VERDICT: APPROVE` and `FINDINGS: none`. No praise, summary or long explanations.
44
44
  - If unsure, tag the finding `[UNVERIFIED]` and say how to verify it.
@@ -9,14 +9,14 @@
9
9
 
10
10
  ## When
11
11
 
12
- The project profile decides which meetings and decisions go to the council (`docs/workflow/progress.md` → `**Profil:**`; chosen in `/start` Step 0):
12
+ The project profile decides which meetings and decisions go to the council (`docs/workflow/progress.md` → `**Profile:**`; chosen in `/start` Step 0):
13
13
 
14
- | | **Hafif** (recommended for Pro) | **Standart** | **Tam** |
14
+ | | **Light** (recommended for Pro) | **Standard** | **Full** |
15
15
  |---|---|---|---|
16
16
  | Add-ons | Core: ponytail, caveman, mattpocock-skills, impeccable, humanizer, security-guidance (+ the type's LSP and stack skills). The others are turned off at project scope | All on | All on |
17
17
  | Commit review (haiku board on every commit) | Off | On | On |
18
- | Command list (descriptions in the skill list) | 10 core commands with descriptions, 18 by name only | Like Hafif | All with descriptions |
19
- | Meeting council (3 stages) | None; meetings are single-stage | Phase end, go-live | Plan, phase end, go-live, RET |
18
+ | Command list (descriptions in the skill list) | 10 core commands with descriptions, 18 by name only | Like Light | All with descriptions |
19
+ | Meeting council (3 stages) | None; meetings are single-stage | Phase end, go-live | Plan, phase end, go-live, REJECT |
20
20
  | Decision council | Database and auth decision | Database and auth decision | All one-way decisions |
21
21
 
22
22
  Measurement (2026-10-12): One council used about 12% of the 5-hour limit on Pro.
@@ -24,8 +24,8 @@ Measurement (2026-10-12): One council used about 12% of the 5-hour limit on Pro.
24
24
  | Case (if the profile allows) | Council type | Stage 1 members | Chair |
25
25
  |---|---|---|---|
26
26
  | Plan, phase-end, go-live meeting | **Meeting council** | Board members chosen by rules.md §3 (with the review role's model) | `board-chair` |
27
- | RET in a task-end meeting | Meeting council (stages 2 and 3 only) | The member who gave RET + the other members of that meeting | `board-chair` |
28
- | One-way door decision (Hafif/Standart: database and auth only; Tam: all; `docs/workflow/decision-protocol.md` §2a) or `/board council <question>` in any profile | **Decision council** | 3 × `council-advisor`: `haiku`, `sonnet`, `opus` (same question, different model) | `board-chair` |
27
+ | REJECT in a task-end meeting | Meeting council (stages 2 and 3 only) | The member who gave REJECT + the other members of that meeting | `board-chair` |
28
+ | One-way door decision (Light/Standard: database and auth only; Full: all; `docs/workflow/decision-protocol.md` §2a) or `/board council <question>` in any profile | **Decision council** | 3 × `council-advisor`: `haiku`, `sonnet`, `opus` (same question, different model) | `board-chair` |
29
29
 
30
30
  - Task-end and commit meetings stay single-stage (rules.md §4).
31
31
  - If the limit is yellow: the decision council runs with 2 advisors (`sonnet`, `opus`), and at most 3 members join stage 2 in a meeting council.
@@ -33,75 +33,75 @@ Measurement (2026-10-12): One council used about 12% of the 5-hour limit on Pro.
33
33
 
34
34
  ## Minutes
35
35
 
36
- Each council is a single file: `docs/workflow/council/YYYY-AA-GG-<type>-<short-topic>.md`. The main agent writes the raw output of the stages here. To keep context small, later steps carry the file path, not the minutes.
36
+ Each council is a single file: `docs/workflow/council/YYYY-MM-DD-<type>-<short-topic>.md`. The main agent writes the raw output of the stages here. To keep context small, later steps carry the file path, not the minutes.
37
37
 
38
38
  ```markdown
39
- # Konsey: <type> · <topic>
40
- **Tarih:** 2026-10-12 · **Tür:** plan | phase-end | go-live | reject | decision
39
+ # Council: <type> · <topic>
40
+ **Date:** 2026-10-12 · **Type:** plan | phase-end | go-live | reject | decision
41
41
  **Task:** G-012 (if any)
42
42
 
43
43
  ## Question
44
44
  <decision council: the question, the options (one line each), context files. Meeting: scope and acceptance criteria>
45
45
 
46
- ## 1. İlk görüşler
47
- ### Görüş A
48
- - A1 [KRİTİK] file:line — problem — suggestion
49
- - A2 [ÖNEMLİ] ...
50
- ÖNERİ: <option name> ← decision council only
51
- ### Görüş B
46
+ ## 1. First opinions
47
+ ### Opinion A
48
+ - A1 [CRITICAL] file:line — problem — suggestion
49
+ - A2 [IMPORTANT] ...
50
+ RECOMMENDATION: <option name> ← decision council only
51
+ ### Opinion B
52
52
  ...
53
53
 
54
- ## 2. Çapraz inceleme
55
- ### İnceleyen: A
54
+ ## 2. Cross review
55
+ ### Reviewer: A
56
56
  <strengths and weaknesses of each opinion, short>
57
- OYLAR:
58
- B1: DOĞRU | YANLIŞ | ABARTILI
57
+ VOTES:
58
+ B1: AGREE | DISAGREE | OVERSTATED
59
59
  MISSING: <something important nobody saw, if any, one line>
60
- SIRALAMA:
61
- 1. Görüş C
62
- 2. Görüş B
60
+ RANKING:
61
+ 1. Opinion C
62
+ 2. Opinion B
63
63
 
64
- ## 3. Toplu sıralama
64
+ ## 3. Overall ranking
65
65
  <written by council.mjs>
66
66
 
67
- ## 4. Başkan kararı
67
+ ## 4. Chair decision
68
68
  <written by board-chair>
69
69
 
70
- ## Kimlikler
70
+ ## IDs
71
71
  A = board-architect (sonnet) · B = security-auditor (sonnet) · C = board-product (haiku)
72
72
  ```
73
73
 
74
74
  ## Stages
75
75
 
76
- 1. **First opinions (parallel).** Give each member the task in its own format (in a meeting, the board format in the member file; in a decision council, the `council-advisor` format). The replies are labeled A, B, C… in random order. Findings get ids: A1, A2, B1… Write the label-to-id mapping only in the "Kimlikler" section at the end of the minutes.
76
+ 1. **First opinions (parallel).** Give each member the task in its own format (in a meeting, the board format in the member file; in a decision council, the `council-advisor` format). The replies are labeled A, B, C… in random order. Findings get ids: A1, A2, B1… Write the label-to-id mapping only in the "IDs" section at the end of the minutes. Minutes written before 3.48 use the Turkish headings and words (Görüş, İnceleyen, OYLAR, SIRALAMA, DOĞRU/YANLIŞ/ABARTILI); council.mjs and the dashboard still read them.
77
77
  2. **Cross-review (parallel).** Give each reviewer the following and pass the instruction below verbatim:
78
78
  - The "Question" section of the minutes.
79
79
  - The other opinions, **excluding** their own. Do not say who wrote them or which model wrote them.
80
80
  - Give each reviewer the opinions in a different order (reduces order effects).
81
81
 
82
- > You do not know who wrote the opinions below. For each one, write what is good and what is missing, in no more than two sentences. Then vote on each finding: DOĞRU (evidenced and severity is right), ABARTILI (real but low importance), YANLIŞ (no match in the code or context). When voting, check the claim in the code or docs. Do not vote on a guess. If nobody saw something important, write it on the MISSING line. At the end, rank in exactly this format: first the "SIRALAMA:" line, then "1. Görüş X" lines from best to worst, no other text.
82
+ > You do not know who wrote the opinions below. For each one, write what is good and what is missing, in no more than two sentences. Then vote on each finding: AGREE (evidenced and severity is right), OVERSTATED (real but low importance), DISAGREE (no match in the code or context). When voting, check the claim in the code or docs. Do not vote on a guess. If nobody saw something important, write it on the MISSING line. At the end, rank in exactly this format: first the "RANKING:" line, then "1. Opinion X" lines from best to worst, no other text.
83
83
 
84
84
  In a meeting council, the reviewers are the same members. In a decision council, they are the same advisors.
85
85
  3. **Counting.** The command `node .claude/hooks/council.mjs <minutes>` computes the following and writes it to the minutes:
86
86
  - Average rank.
87
87
  - Vote distribution for each finding.
88
- - `Tartışmalı` (contested) findings: when the number of objections (YANLIŞ + ABARTILI) is equal to or greater than the number of DOĞRU votes.
89
- - `Uzlaşma` (consensus) percentage.
88
+ - `Disputed` findings: when the number of objections (DISAGREE + OVERSTATED) is equal to or greater than the number of AGREE votes.
89
+ - `Consensus` percentage.
90
90
  4. **Chair.** Run `board-chair` (opus) and give it the path of the minutes. The chair writes:
91
91
  - The final decision.
92
92
  - The dropped findings and the reasons.
93
93
  - The minority view.
94
94
 
95
95
  Rules the chair must follow:
96
- - The chair cannot drop a `Tartışmalı` **KRİTİK** finding alone. That finding stays as "ask the user".
97
- - RET is given only if at least one KRİTİK finding is not `Tartışmalı`.
96
+ - The chair cannot drop a `Disputed` **CRITICAL** finding alone. That finding stays as "ask the user".
97
+ - REJECT is given only if at least one CRITICAL finding is not `Disputed`.
98
98
  5. **User.** The main agent shows the chair's decision in the synthesis format of rules.md §4.
99
99
  - In a decision council, the AskUserQuestion options come from the council:
100
100
  - The option the chair recommends comes first and is labeled "(Recommended)".
101
101
  - Add "Council: n/N first opinions · avg. rank x" to each option's description.
102
102
  - The minority view is written in one sentence in the description of its own option.
103
103
  6. **Record.**
104
- - Add one line to `docs/workflow/board.md` → "Toplantı günlüğü" (meeting log). Write the link to the minutes in the scope column.
104
+ - Add one line to `docs/workflow/board.md` → "Meeting log" (meeting log). Write the link to the minutes in the scope column.
105
105
  - For a decision council, add the reference "Council: <minutes>" to `docs/decisions/log.md` and to the ADR.
106
106
 
107
107
  ## Why
@@ -7,7 +7,7 @@
7
7
  ## 1. Authority: advisor, and stops on critical findings
8
8
 
9
9
  - The board gives opinions, warnings and decision proposals. **The user decides.**
10
- - If a member gives **RET** (a KRİTİK finding: security hole, data-loss risk, legal violation, acceptance criterion not met), the work does not count as "done" and is not committed. Show the user the finding and the options: fix (recommended) / accept the risk and record the reason / roll the task back.
10
+ - If a member gives **REJECT** (a CRITICAL finding: security hole, data-loss risk, legal violation, acceptance criterion not met), the work does not count as "done" and is not committed. Show the user the finding and the options: fix (recommended) / accept the risk and record the reason / roll the task back.
11
11
  - If members disagree, the main agent does not pick alone. Put both views side by side and **ask the user as a decision**.
12
12
 
13
13
  ## 2. Meetings
@@ -22,7 +22,7 @@
22
22
 
23
23
  Commits that contain only documentation changes (`.md`, `docs/`) are exempt from review.
24
24
 
25
- **Council (three stages):** The project profile decides which meetings go to the council (`.claude/board/council.md` → "When"). In the Tam profile, plan, phase-end and go-live meetings, and task-end meetings that end in RET, follow the `.claude/board/council.md` protocol. In Standart, only phase-end and go-live. In Hafif, none. First opinions are collected first. Then members vote on and rank each other's findings anonymously. Last, `board-chair` decides. Task-end and commit meetings are single-stage.
25
+ **Council (three stages):** The project profile decides which meetings go to the council (`.claude/board/council.md` → "When"). In the Full profile, plan, phase-end and go-live meetings, and task-end meetings that end in REJECT, follow the `.claude/board/council.md` protocol. In Standart, only phase-end and go-live. In Hafif, none. First opinions are collected first. Then members vote on and rank each other's findings anonymously. Last, `board-chair` decides. Task-end and commit meetings are single-stage.
26
26
 
27
27
  ## 3. Who is relevant? (pick members by change)
28
28
 
@@ -46,7 +46,7 @@ Do not call a member who is not on the board. If the relevant area has no member
46
46
  ## 4. How to run a meeting
47
47
 
48
48
  1. **Limit check** (`docs/workflow/usage-limits.md`): If the level is yellow, halve the member count. If red, ask the user (including the option to lighten the board). For a task-end meeting, `node .claude/hooks/flow.mjs` gives the member count and whether to run in parallel or in sequence (change size + limit; `code-reviewer` always attends, and `security-auditor` on a sensitive path).
49
- 1b. **Deterministic gate** (commit, task end, phase end; not in the plan meeting): `node .claude/hooks/gate.mjs --run`. It runs the lint, type check and test from AGENTS.md → `Komutlar`, plus Semgrep. The result is stored with the change signature. If it is red or empty (no check ran), the commit gate does not open: fix first or fill in `Komutlar`. If the user explicitly asks for an intermediate commit, use `node .claude/hooks/commit-gate.mjs --skip "kullanıcı isteği"` (it always asks for approval). If the gate says "command approval required", show the commands to the user. If the user approves, run `node .claude/hooks/gate.mjs --approve` (a new or changed command does not run without approval).
49
+ 1b. **Deterministic gate** (commit, task end, phase end; not in the plan meeting): `node .claude/hooks/gate.mjs --run`. It runs the lint, type check and test from AGENTS.md → `Komutlar`, plus Semgrep. The result is stored with the change signature. If it is red or empty (no check ran), the commit gate does not open: fix first or fill in `Komutlar`. If the user explicitly asks for an intermediate commit, use `node .claude/hooks/commit-gate.mjs --skip "user request"` (it always asks for approval). If the gate says "command approval required", show the commands to the user. If the user approves, run `node .claude/hooks/gate.mjs --approve` (a new or changed command does not run without approval).
50
50
  1c. **In a commit meeting, first** run `node .claude/hooks/commit-gate.mjs --status`. If it says "Approval valid", there is no meeting (the task-end meeting already reviewed the same changes). If it says "Changed since the last approval: …", give the members only the diff of those files.
51
51
  2. **Run the members in parallel** (Agent tool, each member as a separate subagent). Give each member: meeting type, scope (plan text / diff range / phase), task id, acceptance criteria and gate output (if any). In the call, pass the `model` and `effort` of the review role (`node .claude/hooks/models.mjs --show`). In a commit meeting, pass `model: "haiku"`, `effort: "low"`. Write the report contract in the prompt: max ~15 lines and 5 findings (any more as one line: "other: N minor findings"), one line per finding, in order of severity, no praise or summary (reports enter the main session's context). Prompt order: the part that is the same for all members (meeting type, scope, acceptance criteria, gate output) first, the member-specific part last; the shared head is read from cache. If a re-check is needed after fixes, do not start a new member. Continue the same member with SendMessage and give only the fixed diff (the cold start is paid once).
52
52
  2b. **If it is a council meeting** (§2), apply stages 1-4 of `.claude/board/council.md`. Build the synthesis from the chair's decision. Write the minority view on the disagreement line.
@@ -54,18 +54,18 @@ Do not call a member who is not on the board. If the relevant area has no member
54
54
 
55
55
  ```
56
56
  ## Board: [type] · [scope]
57
- Attended: [members] · Result: ONAY | KOŞULLU ONAY | RET
57
+ Attended: [members] · Result: APPROVE | CONDITIONAL | REJECT
58
58
  Critical: [if any]
59
59
  Important: [merged, no duplicates, in order of severity]
60
60
  Disagreement: [the two views, if any]
61
61
  To ask the user: [decisions the members flagged]
62
62
  ```
63
63
 
64
- 4. **Inform the user and ask:** Ask the decisions with AskUserQuestion. Ask which findings to fix as a **multi-select**, with KRİTİK ones marked as recommended.
65
- 5. **Record:** Add one line to `docs/workflow/board.md` → "Toplantı günlüğü" (meeting log). Add the decisions to the decision log `docs/decisions/log.md`. Write open findings to `docs/workflow/progress.md` → "Açık sorunlar" (open issues).
66
- 6. **If the commit meeting result is ONAY or KOŞULLU ONAY,** open the commit gate: `node .claude/hooks/commit-gate.mjs --approve "<attending members>"`. If RET, do not open it; ask the user first.
64
+ 4. **Inform the user and ask:** Ask the decisions with AskUserQuestion. Ask which findings to fix as a **multi-select**, with CRITICAL ones marked as recommended.
65
+ 5. **Record:** Add one line to `docs/workflow/board.md` → "Meeting log". Add the decisions to the decision log `docs/decisions/log.md`. Write open findings to `docs/workflow/progress.md` → "Open issues / blockers".
66
+ 6. **If the commit meeting result is APPROVE or CONDITIONAL,** open the commit gate: `node .claude/hooks/commit-gate.mjs --approve "<attending members>"`. If REJECT, do not open it; ask the user first.
67
67
 
68
- If the user wants to skip commit review for now, they must say so explicitly. Then run `node .claude/hooks/commit-gate.mjs --skip "kullanıcı isteği"` (it asks for approval) and write it to the log. To turn it off permanently: `docs/workflow/board.md` → `**Commit denetimi:** kapalı`.
68
+ If the user wants to skip commit review for now, they must say so explicitly. Then run `node .claude/hooks/commit-gate.mjs --skip "user request"` (it asks for approval) and write it to the log. To turn it off permanently: `docs/workflow/board.md` → `**Commit review:** off`.
69
69
 
70
70
  ## 5. How to set up the board (`/start` board step or `/board setup`)
71
71