Conversation
WalkthroughAdds ~25 new agent "SKILL" documentation pages and examples, three TypeScript condition-based waiting utilities, a test-polluter detection script, VS Code workspace settings, turborepo and package.json tooling edits, an AGENTS.md skills_system block, and removes PLAN.md. Changes
Sequence Diagram(s)(Skipped — changes are primarily documentation, small utilities, scripts, and config; no new multi-component control flow requiring a sequence diagram.) Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Areas requiring extra attention:
Possibly related PRs
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 13
🧹 Nitpick comments (23)
.agent/skills/sharing-skills/SKILL.md (1)
164-180: Fix Markdown linting issues: use headings instead of emphasis and format URLs as links.Lines 164-180 (troubleshooting section) have Markdown linting violations:
- Lines 164, 168, 172, 176: Use
### Headinginstead of**bold text**for section headers- Lines 165, 170: Convert bare URLs to link syntax
[link text](url)These are style issues but should be fixed for consistency with documentation standards.
Apply this pattern to the troubleshooting section:
-**"gh: command not found"** -- Install GitHub CLI: https://cli.github.com/ -- Authenticate: `gh auth login` +### "gh: command not found" + +- Install GitHub CLI: [GitHub CLI](https://cli.github.com/) +- Authenticate: `gh auth login`Apply similarly to other troubleshooting entries (lines 168, 172, 176).
.agent/skills/systematic-debugging/SKILL.md (1)
18-20: Add language specification to fenced code blocks.Markdown linting flags two code blocks without language specification:
- Line 18-20: The "NO FIXES WITHOUT ROOT CAUSE" block
- Line 77-88: The multi-component diagnostics block
Add language identifiers for clarity (e.g.,
bash`,text`):-``` +```text NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST -``` +```Do the same for the diagnostics block (line 77), specifying ````bash` if those are shell commands.
Also applies to: 77-88
.agent/skills/systematic-debugging/test-pressure-2.md (1)
12-15: Fix Markdown linting: specify language for code block and use headings for options.Two categories of Markdown linting issues:
- Line 12: Add language specification to the code block (likely
javascriptortypescript):-``` +```javascript Expected: { status: 'completed', amount: 100 } Received: { status: 'pending', amount: 100 } -``` +```
- Lines 29, 37, 53, 60: Use proper headings (
### Option A,### Option B, etc.) instead of bold emphasis:-**Option A: Follow systematic debugging** +### Option A: Follow systematic debuggingApply the heading format to all four options (lines 29, 37, 53, 60).
Also applies to: 29-64
packages/zenko/package.json (1)
72-76: Document the optional TypeScript peerDependency change.Marking TypeScript as optional in
peerDependenciesMetais unusual and may confuse consumers. Clarify the implications:
- Will the package work without TypeScript installed?
- Are there runtime implications, or is it only for type-checking/development?
- What guidance should consumers follow if they don't install the peer dependency?
Consider adding an inline comment or README section explaining this design choice.
.agent/skills/root-cause-tracing/find-polluter.sh (2)
33-36: Ambiguous behavior when pollution pre-exists.If
POLLUTION_CHECKalready exists before any test runs, the script skips tests and reports "⚠️ Pollution already exists before test X". This is misleading—the pollution existed before the loop started, not "before test X".Consider distinguishing:
- Pre-existing pollution detected at script start → report once and exit
- Pollution appearing during test execution → report which test created it
Suggested fix:
# At script start, after validation if [ -e "$POLLUTION_CHECK" ]; then echo "⚠️ $POLLUTION_CHECK already exists before testing" echo " Clean up and re-run, or specify a different pollution target" exit 1 fi
23-23: Minor: More robust line counting.Line 23 uses
wc -l | tr -d ' 'to count lines. While functional, it's fragile ifwcoutput varies (some systems pad with spaces). A more robust approach:TOTAL=$(echo "$TEST_FILES" | wc -l | xargs)Or simpler:
TOTAL=$(find . -path "$TEST_PATTERN" | wc -l).agent/skills/using-git-worktrees/SKILL.md (2)
42-42: Add language specifications to fenced code blocks.Lines 42, 138, and 176 have fenced code blocks without language identifiers (MD040). Add the appropriate language for syntax highlighting and clarity:
-``` +```bash # Check in priority orderSuggested languages:
- Line 42:
bash- Line 138:
bash- Line 176:
bashAlso applies to: 138-138, 176-176
24-25: Prefertest -doverls -dfor directory checks.Lines 24-25 use
ls -d .worktrees 2>/dev/nullto check directory existence. Better practice in bash is to use the test operator:# Current ls -d .worktrees 2>/dev/null # Preferred [ -d .worktrees ]The
test -doperator is:
- More efficient (no subprocess)
- More readable (standard bash idiom)
- Safer (no symlink or permission issues with ls)
Apply consistently to other directory checks in the script.
.agent/skills/dispatching-parallel-agents/SKILL.md (2)
143-143: Add language specification to fenced code block.Line 143 has a fenced code block missing a language identifier (MD040). Based on context, this appears to be example dispatch commands (pseudocode or conceptual). Clarify with a language tag:
-``` +``` Agent 1 → Fix agent-tool-abort.test.tsIf this is meant to be pseudocode or plain text, use a more explicit format or add a comment explaining it's not runnable code.
66-72: Clarify pseudocode notation.Lines 66-72 show TypeScript-like syntax with
Task()function calls that are not valid TypeScript. While clearly conceptual, consider adding a comment to clarify:// Pseudocode: This illustrates the concept, not actual implementation Task("Fix agent-tool-abort.test.ts failures") Task("Fix batch-completion-behavior.test.ts failures") Task("Fix tool-approval-race-conditions.test.ts failures") // All three run concurrentlyThis prevents confusion for readers unfamiliar with the context.
.agent/skills/writing-plans/SKILL.md (2)
88-88: Add language specification to fenced code block.Line 88 has a fenced code block missing a language identifier (MD040). Add the appropriate language:
-``` +```bash git add tests/path/test.py src/path/file.py
18-18: Clarify plan storage directory requirement.Line 18 specifies plans should be saved to
docs/plans/YYYY-MM-DD-<feature-name>.md. Ensure:
- The
docs/plans/directory exists or provide instructions to create it- This directory is documented in the main project README or contributing guide
- The YYYY-MM-DD naming convention is enforced or encouraged via templates
Consider adding a note: "Ensure the
docs/plans/directory exists before saving plans. Create it withmkdir -p docs/plansif needed.".agent/skills/testing-skills-with-subagents/SKILL.md (1)
187-203: Add language identifier to the code block.The fenced code block on line 202 should specify a language for proper syntax highlighting.
Based on the context, this appears to be markdown:
```<Before> -``` +```markdown Write code before test? Delete it..agent/skills/writing-skills/SKILL.md (1)
293-293: Consider using a heading instead of emphasized text.Line 293 uses bold text for "Good example:" which could be a proper heading for better document structure.
-**Good example:** +### Good exampleThis applies to similar patterns throughout the document (e.g., "Bad example:", "When to use:", etc.).
.agent/skills/condition-based-waiting/example.ts (2)
20-48: Consider adding cleanup/cancellation mechanism.The polling pattern creates recursive
setTimeoutcalls that can't be cancelled once started. If the caller abandons the promise (e.g., component unmounts, test times out), the polling continues consuming resources.Consider returning an object with both the promise and a cancel function:
export function waitForEvent( threadManager: ThreadManager, threadId: string, eventType: LaceEventType, timeoutMs = 5000 ): { promise: Promise<LaceEvent>; cancel: () => void } { let timeoutId: NodeJS.Timeout | null = null let cancelled = false const promise = new Promise<LaceEvent>((resolve, reject) => { const startTime = Date.now() const check = () => { if (cancelled) return const events = threadManager.getEvents(threadId) const event = events.find((e) => e.type === eventType) if (event) { resolve(event) } else if (Date.now() - startTime > timeoutMs) { reject( new Error( `Timeout waiting for ${eventType} event after ${timeoutMs}ms` ) ) } else { timeoutId = setTimeout(check, 10) } } check() }) return { promise, cancel: () => { cancelled = true if (timeoutId) clearTimeout(timeoutId) } } }Apply the same pattern to
waitForEventCountandwaitForEventMatch.Alternatively, if these are only used in test contexts where cleanup isn't critical, the current implementation is acceptable.
42-42: Consider extracting the polling interval constant.The 10ms polling interval is hardcoded in all three functions. Extracting it would make future adjustments easier and ensure consistency.
+const POLL_INTERVAL_MS = 10 + export function waitForEvent( // ... ) { // ... - setTimeout(check, 10) // Poll every 10ms for efficiency + setTimeout(check, POLL_INTERVAL_MS) // ... }.agent/skills/subagent-driven-development/SKILL.md (1)
41-57: Add language identifiers to fenced code blocks.Fenced code blocks should specify a language for syntax highlighting and markdown linting compliance. Use
yaml,bash,plaintext, or leave generic as appropriate.For example, at Line 41:
-``` +```yaml Task tool (general-purpose):Apply similar fixes to lines 64, 85, and 111.
Also applies to: 64-73, 85-87, 111-146
.agent/skills/requesting-code-review/SKILL.md (1)
51-75: Add language identifier to fenced code block.Line 51 code block should specify a language for markdown compliance. Use
plaintextortextsince it's example conversation output.-``` +```plaintext [Just completed Task 2: Add verification function].agent/skills/requesting-code-review/code-reviewer.md (1)
112-146: Add language identifier to example output code block.Line 112 code block should specify a language. Use
plaintextortextfor the example output section.-``` +```plaintext ### Strengths - Clean database schema with proper migrations (db.ts:15-42).agent/skills/receiving-code-review/SKILL.md (2)
16-16: Add language identifiers to fenced code blocks.Multiple code blocks throughout this file lack language specifications. Update all to specify language (
yaml,plaintext,text, etc.) for markdown compliance.Examples:
- Line 16: Use
textorplaintextfor the response pattern- Line 42: Use
textorplaintextfor the handling example- Line 51: Use
textfor the conversational example- Lines 68-84, 90-98, 102-111, 134-144, 153-161, 179-188, 191-194: Similar pattern
To fix systematically, open the file and add language identifiers. Example:
-``` +```text WHEN receiving code review feedback:Repeat for remaining 11 instances.
Also applies to: 42-42, 51-51, 68-68, 90-90, 102-102, 134-134, 153-153, 179-179, 185-185, 191-191, 197-197
158-158: Use proper headings instead of emphasis in "Common Mistakes" section.Lines 158, 163, 168, 173 use bold emphasis (
**Text**) where section headings should be used (e.g.,### Heading). This affects document structure and markdown validation.-| Mistake | Fix | -|---------|-----| -| Performative agreement | State requirement or just act | ... -**Performative Agreement (Bad):** +## Performative Agreement (Bad)Update lines 158, 163, 168, 173 to use
## Headingor### Headingformat instead of**Emphasis**.Also applies to: 163-163, 168-168, 173-173
.agent/skills/finishing-a-development-branch/SKILL.md (2)
22-22: Add language identifiers to fenced code blocks.Code blocks at lines 22, 54, and 109 lack language specifications. Update to specify language for markdown compliance.
Examples:
- Line 22: Use
bashfor the test command example- Line 54: Use
textorplaintextfor the menu options- Line 109: Use
textfor the discard confirmation-```bash +```bash # Run project's test suiteAlso applies to: 54-54, 109-109
158-158: Use proper headings instead of emphasis in "Common Mistakes" section.Lines 158, 163, 168, 173 use bold emphasis (
**Text**) instead of markdown headings. This affects document structure and markdown validation.-**Skipping test verification** +### Skipping test verificationApply to lines 158, 163, 168, 173.
Also applies to: 163-163, 168-168, 173-173
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (2)
.agent/skills/writing-skills/graphviz-conventions.dotis excluded by!**/*.dotbun.lockis excluded by!**/*.lock
📒 Files selected for processing (39)
.agent/skills/brainstorming/SKILL.md(1 hunks).agent/skills/condition-based-waiting/SKILL.md(1 hunks).agent/skills/condition-based-waiting/example.ts(1 hunks).agent/skills/defense-in-depth/SKILL.md(1 hunks).agent/skills/dispatching-parallel-agents/SKILL.md(1 hunks).agent/skills/executing-plans/SKILL.md(1 hunks).agent/skills/finishing-a-development-branch/SKILL.md(1 hunks).agent/skills/receiving-code-review/SKILL.md(1 hunks).agent/skills/requesting-code-review/SKILL.md(1 hunks).agent/skills/requesting-code-review/code-reviewer.md(1 hunks).agent/skills/root-cause-tracing/SKILL.md(1 hunks).agent/skills/root-cause-tracing/find-polluter.sh(1 hunks).agent/skills/sharing-skills/SKILL.md(1 hunks).agent/skills/subagent-driven-development/SKILL.md(1 hunks).agent/skills/systematic-debugging/CREATION-LOG.md(1 hunks).agent/skills/systematic-debugging/SKILL.md(1 hunks).agent/skills/systematic-debugging/test-academic.md(1 hunks).agent/skills/systematic-debugging/test-pressure-1.md(1 hunks).agent/skills/systematic-debugging/test-pressure-2.md(1 hunks).agent/skills/systematic-debugging/test-pressure-3.md(1 hunks).agent/skills/test-driven-development/SKILL.md(1 hunks).agent/skills/testing-anti-patterns/SKILL.md(1 hunks).agent/skills/testing-skills-with-subagents/SKILL.md(1 hunks).agent/skills/testing-skills-with-subagents/examples/CLAUDE_MD_TESTING.md(1 hunks).agent/skills/using-git-worktrees/SKILL.md(1 hunks).agent/skills/using-superpowers/SKILL.md(1 hunks).agent/skills/verification-before-completion/SKILL.md(1 hunks).agent/skills/writing-plans/SKILL.md(1 hunks).agent/skills/writing-skills/SKILL.md(1 hunks).agent/skills/writing-skills/anthropic-best-practices.md(1 hunks).agent/skills/writing-skills/persuasion-principles.md(1 hunks).vscode/extensions.json(1 hunks).vscode/settings.json(1 hunks)AGENTS.md(1 hunks)PLAN.md(0 hunks)package.json(1 hunks)packages/examples/package.json(1 hunks)packages/zenko/package.json(1 hunks)turbo.json(2 hunks)
💤 Files with no reviewable changes (1)
- PLAN.md
🧰 Additional context used
🧠 Learnings (9)
📚 Learning: 2025-11-24T15:55:03.108Z
Learnt from: CR
Repo: RawToast/zenko PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-24T15:55:03.108Z
Learning: Agent definitions should be documented with clear descriptions of their purpose, capabilities, and integration points
Applied to files:
.agent/skills/subagent-driven-development/SKILL.md.agent/skills/dispatching-parallel-agents/SKILL.md.agent/skills/requesting-code-review/SKILL.md
📚 Learning: 2025-11-24T15:55:12.838Z
Learnt from: CR
Repo: RawToast/zenko PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-24T15:55:12.838Z
Learning: Applies to **/*.{ts,tsx} : Export inferred Zod types and maintain strict TypeScript settings with `noUncheckedIndexedAccess` and `noUnusedLocals` enabled
Applied to files:
.vscode/settings.jsonturbo.jsonpackages/examples/package.jsonpackages/zenko/package.json
📚 Learning: 2025-11-24T15:55:12.838Z
Learnt from: CR
Repo: RawToast/zenko PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-24T15:55:12.838Z
Learning: Applies to **/*.{ts,tsx,js,jsx} : Organize imports in order: built-in → third-party → local; always use double quotes
Applied to files:
.vscode/settings.jsonturbo.json
📚 Learning: 2025-11-24T15:55:12.838Z
Learnt from: CR
Repo: RawToast/zenko PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-24T15:55:12.838Z
Learning: Applies to packages/zenko/dist/** : Never manually edit generated artifacts in `packages/zenko/dist`; this directory is auto-generated
Applied to files:
turbo.json
📚 Learning: 2025-11-24T15:55:12.838Z
Learnt from: CR
Repo: RawToast/zenko PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-24T15:55:12.838Z
Learning: Applies to packages/zenko/src/__tests__/**/*.{ts,tsx,test.ts,test.tsx,spec.ts,spec.tsx} : Store test specifications in `packages/zenko/src/__tests__` and use snapshots for output verification
Applied to files:
turbo.jsonpackages/examples/package.jsonpackages/zenko/package.json
📚 Learning: 2025-10-12T14:20:34.939Z
Learnt from: RawToast
Repo: RawToast/zenko PR: 1
File: package.json:20-20
Timestamp: 2025-10-12T14:20:34.939Z
Learning: In package.json scripts, "bun run --cwd <workspace>" without a script name is a valid helper alias pattern that forwards additional arguments. For example, a script like "zenko": "bun run --cwd packages/zenko" can be invoked as `bun zenko build` which forwards "build" to the workspace package, effectively running `bun run --cwd packages/zenko build`. This is an intentional design for flexible workspace helpers, not an error.
Applied to files:
packages/examples/package.json
📚 Learning: 2025-11-24T15:55:12.838Z
Learnt from: CR
Repo: RawToast/zenko PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-24T15:55:12.838Z
Learning: Run scripts from workspace root and maintain compatibility with Bun 1.3+ and Node >=18
Applied to files:
packages/examples/package.json
📚 Learning: 2025-11-24T15:55:12.838Z
Learnt from: CR
Repo: RawToast/zenko PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-24T15:55:12.838Z
Learning: Use `bun check` command to run lint, format, and type check together instead of individual commands
Applied to files:
packages/examples/package.json
📚 Learning: 2025-10-31T22:24:57.504Z
Learnt from: RawToast
Repo: RawToast/zenko PR: 34
File: packages/zenko/src/__tests__/config-options.test.ts:473-556
Timestamp: 2025-10-31T22:24:57.504Z
Learning: In the zenko package, the `optionalType` configuration option has three distinct behaviors aligned with Zod semantics: `optional` generates `.optional()` (field can be undefined/omitted), `nullable` generates `.nullable()` (field must be present but can be null), and `nullish` generates `.nullish()` (field can be undefined OR null). The `nullable` option intentionally does NOT add `.optional()`, as that would change the required/optional nature of the field.
Applied to files:
packages/zenko/package.json
🪛 LanguageTool
.agent/skills/condition-based-waiting/SKILL.md
[grammar] ~32-~32: Ensure spelling is correct
Context: ...ass sometimes, fail under load) - Tests timeout when run in parallel - Waiting for asyn...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
.agent/skills/systematic-debugging/SKILL.md
[style] ~43-~43: ‘in a hurry’ might be wordy. Consider a shorter alternative.
Context: ...ple bugs have root causes too) - You're in a hurry (rushing guarantees rework) - Manager w...
(EN_WORDINESS_PREMIUM_IN_A_HURRY)
.agent/skills/brainstorming/SKILL.md
[grammar] ~19-~19: Use a hyphen to join words.
Context: ...ime to refine the idea - Prefer multiple choice questions when possible, but open...
(QB_NEW_EN_HYPHEN)
.agent/skills/systematic-debugging/CREATION-LOG.md
[style] ~17-~17: ‘in a hurry’ might be wordy. Consider a shorter alternative.
Context: ...uage ("even if faster", "even if I seem in a hurry") - Concrete steps for each phase **Wh...
(EN_WORDINESS_PREMIUM_IN_A_HURRY)
[style] ~40-~40: ‘in a hurry’ might be wordy. Consider a shorter alternative.
Context: ...") - "even if faster" / "even if I seem in a hurry" - "STOP and re-analyze" (explicit paus...
(EN_WORDINESS_PREMIUM_IN_A_HURRY)
[style] ~89-~89: This phrase is redundant. Consider writing “Outcome”.
Context: ...nts confusion between methodologies ## Final Outcome Bulletproof skill that: - ✅ Clearly ma...
(FINAL_END)
.agent/skills/requesting-code-review/code-reviewer.md
[style] ~106-~106: Try using a synonym here to strengthen your writing.
Context: ... checking - Mark nitpicks as Critical - Give feedback on code you didn't review - Be...
(GIVE_PROVIDE)
.agent/skills/writing-skills/SKILL.md
[grammar] ~287-~287: Ensure spelling is correct
Context: ...ists - Labels without semantic meaning (step1, helper2) See @graphviz-conventions.do...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~287-~287: Ensure spelling is correct
Context: ...Labels without semantic meaning (step1, helper2) See @graphviz-conventions.dot for gra...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~372-~372: ‘under stress’ might be wordy. Consider a shorter alternative.
Context: ...s? - Pressure scenarios: Do they comply under stress? - Multiple pressures combined: time + ...
(EN_WORDINESS_PREMIUM_UNDER_STRESS)
[style] ~544-~544: To elevate your writing, try using a synonym here.
Context: ...e"]; ``` Why bad: Can't copy-paste, hard to read ### ❌ Generic Labels helper1, ...
(HARD_TO)
.agent/skills/test-driven-development/SKILL.md
[grammar] ~254-~254: Use a hyphen to join words.
Context: ...ests after ≠ TDD. You get coverage, lose proof tests work. ## Common Rationaliza...
(QB_NEW_EN_HYPHEN)
[style] ~267-~267: To elevate your writing, try using a synonym here.
Context: ...clear" | Listen to test. Hard to test = hard to use. | | "TDD will slow me down" | T...
(HARD_TO)
.agent/skills/writing-skills/anthropic-best-practices.md
[style] ~22-~22: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...Default assumption**: Claude is already very smart Only add context Claude doesn't alread...
(EN_WEAK_ADJECTIVE)
[style] ~140-~140: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...: Is the Skill clear and efficient? * Claude Opus (powerful reasoning): Does the S...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~802-~802: Try replacing commonly used words with synonyms to make your writing more engaging.
Context: ...encounter new scenarios. Each iteration improves the Skill based on real agent behavior,...
(IMPROVE_STRENGTHEN)
.agent/skills/testing-skills-with-subagents/SKILL.md
[grammar] ~330-~330: Ensure spelling is correct
Context: ...ed flags list - [ ] Updated description ith violation symptoms - [ ] Re-tested - ag...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🪛 markdownlint-cli2 (0.18.1)
.agent/skills/writing-plans/SKILL.md
65-65: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
70-70: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
77-77: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
82-82: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
88-88: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.agent/skills/systematic-debugging/test-pressure-2.md
12-12: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
29-29: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
37-37: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
53-53: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
60-60: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
.agent/skills/testing-skills-with-subagents/examples/CLAUDE_MD_TESTING.md
8-8: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
22-22: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
39-39: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
53-53: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.agent/skills/systematic-debugging/test-pressure-1.md
17-17: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
38-38: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
44-44: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
50-50: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
.agent/skills/subagent-driven-development/SKILL.md
41-41: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
64-64: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
85-85: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
111-111: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.agent/skills/systematic-debugging/SKILL.md
18-18: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
77-77: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.agent/skills/requesting-code-review/code-reviewer.md
112-112: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.agent/skills/root-cause-tracing/SKILL.md
40-40: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.agent/skills/dispatching-parallel-agents/SKILL.md
143-143: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.agent/skills/systematic-debugging/test-pressure-3.md
46-46: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
54-54: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
61-61: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
.agent/skills/writing-skills/SKILL.md
74-74: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
293-293: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
317-317: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
324-324: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
332-332: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
343-343: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
451-451: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.agent/skills/verification-before-completion/SKILL.md
18-18: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
26-26: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
79-79: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
85-85: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
91-91: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
97-97: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
103-103: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.agent/skills/sharing-skills/SKILL.md
164-164: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
165-165: Bare URL used
(MD034, no-bare-urls)
168-168: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
170-170: Bare URL used
(MD034, no-bare-urls)
172-172: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
176-176: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
.agent/skills/requesting-code-review/SKILL.md
51-51: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.agent/skills/test-driven-development/SKILL.md
18-18: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
56-56: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
107-107: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
156-156: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
215-215: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
234-234: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
246-246: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.agent/skills/receiving-code-review/SKILL.md
16-16: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
42-42: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
51-51: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
68-68: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
90-90: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
102-102: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
134-134: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
153-153: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
179-179: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
185-185: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
191-191: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
197-197: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.agent/skills/writing-skills/anthropic-best-practices.md
149-149: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
150-150: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
192-192: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
193-193: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
194-194: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
257-257: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
301-301: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
1040-1040: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.agent/skills/testing-skills-with-subagents/SKILL.md
202-202: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.agent/skills/using-git-worktrees/SKILL.md
42-42: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
138-138: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
158-158: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
162-162: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
166-166: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
170-170: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
176-176: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.agent/skills/finishing-a-development-branch/SKILL.md
29-29: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
54-54: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
109-109: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
158-158: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
163-163: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
168-168: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
173-173: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
🔇 Additional comments (20)
turbo.json (1)
13-13: Turbo caching and type-check inputs align with generated artifact expansion.The enabling of codegen caching and expanded check-types inputs align with the new generated TypeScript (.gen.ts) and YAML configuration files introduced in this PR. The dependency graph (check-types depends on codegen) ensures type-checking runs after code generation.
Verify that codegen remains deterministic to ensure caching doesn't surface stale artifacts.
Also applies to: 25-25
.vscode/extensions.json (1)
1-9: VS Code extension recommendations align with tooling migration.The recommended extensions support the project's tooling updates (TypeScript native-preview, oxlint, Prettier). This ensures developers get the same editor experience without manual setup.
package.json (1)
27-27: Verify stability and intent of @typescript/native-preview dev pre-release version.The project is migrating from TypeScript 5.9.3 to @typescript/native-preview at version 7.0.0-dev.20251212.1. This is a development pre-release, not a stable version, which carries risks of breaking changes and instability in production.
Before merging, clarify:
- Is the dev version intentional or should this pin a stable release?
- What is the stability story for @typescript/native-preview as a TypeScript replacement?
- Are there documented compatibility constraints or known issues with this version?
You may want to search the web for the latest guidance on @typescript/native-preview stability and recommended versions.
packages/examples/package.json (1)
11-11: Verify tsgo availability and compatibility with TypeScript configuration.The script change from
tsc --noEmittotsgo --noEmitintroduces a new type-checking tool. Confirm that:
tsgois available in the @typescript/native-preview package- The tool is compatible with the project's tsconfig.json settings
- Output and error messages are compatible with existing tooling/CI
Additionally, verify that the same pre-release TypeScript version concerns mentioned in the root package.json apply here.
Also applies to: 14-16
.vscode/settings.json (1)
12-15: Workspace settings properly configured for TypeScript native-preview and tsgo tooling.The configuration correctly:
- Points TypeScript SDK to @typescript/native-preview (line 14)
- Enables experimental tsgo feature (line 30)
- Configures Prettier for auto-formatting on save (line 20)
- Enables oxc auto-fixes (line 21)
Verify that the TypeScript SDK path (
./node_modules/@typescript/native-preview/lib) exists after dependency installation. This path assumption should hold if the dependency installation succeeds.Also applies to: 19-21, 29-30
.agent/skills/testing-anti-patterns/SKILL.md (1)
1-286: LGTM!Comprehensive testing anti-patterns skill documentation. The structure is clear, examples effectively illustrate good and bad practices, gate functions are actionable, and the iron laws provide enforceable guardrails. Excellent reference for preventing test-related mistakes.
.agent/skills/writing-skills/persuasion-principles.md (1)
1-178: LGTM!Well-researched persuasion principles documentation with strong academic grounding. The seven principles are clearly explained with practical examples, ethical guidelines are explicit, and the Principle Combinations table effectively guides skill designers. Good addition to the writing-skills corpus.
.agent/skills/systematic-debugging/CREATION-LOG.md (1)
1-116: LGTM!Excellent meta-documentation on extracting and bulletproofing a critical skill. The creation log itself serves as a reference for how to structure new skills. The redundancy and pressure-resistance sections effectively explain design choices. Clear value for skill developers.
.agent/skills/root-cause-tracing/SKILL.md (1)
1-170: Strong root-cause tracing skill documentation.Comprehensive guide with clear process steps, practical instrumentation strategies, and real-world example. The backward-tracing methodology and defense-in-depth approach are well-explained. The DOT diagrams effectively visualize the decision process.
.agent/skills/brainstorming/SKILL.md (1)
1-54: LGTM!Clear brainstorming skill documentation with good process flow: understanding → exploring approaches → presenting design → documentation. The one-question-at-a-time principle and incremental validation approach are practical and well-explained. Good integration points with other skills (worktrees, implementation planning).
.agent/skills/defense-in-depth/SKILL.md (1)
1-120: LGTM! Well-structured guidance document establishing defense-in-depth validation patterns. The four-layer approach is clearly articulated with concrete examples and a compelling session narrative demonstrating effectiveness.packages/zenko/package.json (1)
62-62: Verify TypeScript tooling migration and version constraints.The shift from
tsctotsgoand the use of@typescript/native-preview@7.0.0-dev.20251212.1introduces several concerns:
tsgocommand - Is this the intended replacement fortsc? The tool name is unfamiliar and warrants verification.- Version mismatch - peerDependencies specifies
"^5"while devDependencies uses7.0.0-dev(a preview build). This asymmetry should be intentional and documented.- Preview stability -
@typescript/native-previewis a development preview. Ensure the team is aware of potential instability and has evaluated compatibility thoroughly.- No migration notes - The shift in tooling and versions lacks documentation of breaking changes, setup requirements, or troubleshooting guidance.
Please verify:
- Is
tsgoa known/approved replacement for type-checking, or should this betsc?- What is the intended relationship between the
^5peerDependency and the7.0.0-devdevDependency?- Have you tested type-checking with the new tooling against the full codebase to ensure no regressions?
- Should this transition be documented in CONTRIBUTING.md or a migration guide?
If this is an intentional shift to a preview version, consider adding a note in the README or package.json
commentsfield (if supported) to clarify the rationale.Also applies to: 66-66
.agent/skills/systematic-debugging/test-academic.md (1)
3-3: Verify skill path reference.Line 3 references the skill at
skills/debugging/systematic-debugging. Confirm this path is accurate and accessible. If the actual path differs (e.g.,.agent/skills/systematic-debugging/SKILL.md), update the reference to prevent broken links..agent/skills/root-cause-tracing/find-polluter.sh (1)
42-42: Critical: Reconsider error suppression in test execution.Line 42 uses
npm test "$TEST_FILE" > /dev/null 2>&1 || true, which suppresses all errors from the test command. This means:
- If a test fails for an unrelated reason, the script will not detect it
- Legitimate test failures are masked
- The script may incorrectly identify a test as a polluter when it actually crashed
Consider: Should test failures during the binary search be treated differently? If you only care about whether a file is created (not test success), the current approach is acceptable. If test failures matter, use a more selective suppression or conditionally check the exit code.
Suggestion: If the goal is purely to detect file creation regardless of test outcome, add a comment clarifying this intent. If test failures should be logged, capture them:
if ! npm test "$TEST_FILE" > /tmp/test_output.log 2>&1; then # Optionally log or handle test failure : fi.agent/skills/writing-plans/SKILL.md (1)
36-36: Verify skill reference naming convention.Lines 36 and 110 reference skills using the
superpowers:prefix (e.g.,superpowers:executing-plans,superpowers:subagent-driven-development). Ensure this naming convention is:
- Consistent across all skill references in the codebase
- Documented for teams using these skills
- Correctly resolved by any systems that process these references
Consider adding a brief note about the naming convention or linking to documentation if this is a standardized pattern.
Also applies to: 110-110
.agent/skills/testing-skills-with-subagents/examples/CLAUDE_MD_TESTING.md (1)
1-189: LGTM with minor formatting note.The test scenarios are well-structured and provide clear guidance for testing CLAUDE.md documentation variants. The fenced code blocks without language identifiers (lines 8, 22, 39, 53) contain scenario descriptions rather than code, so adding identifiers is optional.
If you'd like to add language identifiers for consistency, consider using
textormarkdown:-``` +```text IMPORTANT: This is a real scenario. Choose and act. ...</blockquote></details> <details> <summary>.agent/skills/writing-skills/anthropic-best-practices.md (1)</summary><blockquote> `1-1150`: **LGTM - Comprehensive best practices guide.** This is a thorough guide for authoring Claude Skills with excellent examples, clear structure, and practical patterns. The content provides valuable guidance on conciseness, progressive disclosure, workflows, and testing. Note: Static analysis flagged some minor formatting inconsistencies (missing language identifiers on code blocks at lines 257, 301, 1040) but these don't impact the documentation's quality or usefulness. </blockquote></details> <details> <summary>.agent/skills/condition-based-waiting/SKILL.md (1)</summary><blockquote> `1-120`: **LGTM - Clear documentation with practical examples.** The documentation effectively explains the condition-based waiting pattern, provides clear before/after examples, and includes appropriate usage guidance. The flowchart helps visualize the decision-making process, and the reference to `example.ts` for concrete implementations is helpful. </blockquote></details> <details> <summary>AGENTS.md (1)</summary><blockquote> `43-187`: **LGTM - Well-structured skills system documentation.** The skills system block provides clear usage instructions and a comprehensive list of available skills. Each skill entry follows a consistent format with descriptive triggers for when to use them. The instructions for skill invocation using `Bash("openskills read <skill-name>")` are clear and actionable. The skills catalog aligns well with the extensive skill documentation added throughout this PR, creating a cohesive system for agent-driven development workflows. </blockquote></details> <details> <summary>.agent/skills/executing-plans/SKILL.md (1)</summary><blockquote> `1-76`: **LGTM!** Well-structured skill documentation with clear batch-execution workflow, proper integration points, and good emphasis on stopping when blocked rather than guessing. The emphasis on critical review of the plan upfront (Step 1) and clear checkpoints between batches aligns well with the broader skill system. </blockquote></details> </blockquote></details> </details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
STYLE_GUIDE.md(1 hunks)packages/zenko/package.json(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- packages/zenko/package.json
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-11-24T15:55:12.838Z
Learnt from: CR
Repo: RawToast/zenko PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-24T15:55:12.838Z
Learning: Run scripts from workspace root and maintain compatibility with Bun 1.3+ and Node >=18
Applied to files:
STYLE_GUIDE.md
🪛 LanguageTool
STYLE_GUIDE.md
[grammar] ~11-~11: Use a hyphen to join words.
Context: ...- AVOID let statements - PREFER single word variable names where possible - Use...
(QB_NEW_EN_HYPHEN)
Summary by CodeRabbit
Chores
Documentation
Tools
✏️ Tip: You can customize this high-level summary in your review settings.