From fabrik
Addresses code review feedback by triaging comments one at a time from GitHub PRs, review.jsonl files, repo documents, or conversation before implementing fixes.
npx claudepluginhub maragudk/fabrik --plugin fabrikThis skill uses the workspace's default tool permissions.
Work through code review comments with the user, one comment at a time. Never present multiple comments at once.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Processes PDFs: extracts text/tables/images, merges/splits/rotates pages, adds watermarks, creates/fills forms, encrypts/decrypts, OCRs scans. Activates on PDF mentions or output requests.
Share bugs, ideas, or general feedback.
Work through code review comments with the user, one comment at a time. Never present multiple comments at once.
Critical rule: Do not make any code changes — not a single edit — until every comment has been triaged with the user. Triage and implementation are strictly separate phases. Implementation only begins after the final comment has been discussed and a decision recorded.
Comments may come from:
review.jsonl - A JSONL file at the repo root. Each line is a JSON object: {"base":"<sha>","comment":"...","compare":"<sha>","endLine":45,"file":"main.go","startLine":42}gh apiWhen no explicit source is specified, check for review.jsonl at the repo root first. If it exists, use it.
Always run git pull first. The review.jsonl file (or other review artifacts) may have been pushed from elsewhere and not yet present locally.
review.jsonl: Read the file. Each line is one comment. Parse the JSON to get the file path, line range, and comment text. Use base and compare SHAs for context if needed.pullRequest.reviewThreads and general PR comments via pullRequest.comments. Skip already-resolved threads (isResolved). Still present outdated but unresolved comments (isOutdated), noting to the user that the code has changed since the comment was left.Walk through every comment, strictly one at a time. No code changes during this phase. No edits, no commits, no file writes for the fixes themselves. Only discussion and decision-recording.
For each comment:
For GitHub PR inline comments: immediately reply to the comment on GitHub and resolve the thread after discussion. (Replies and resolutions are not code changes — they are part of triage.)
Only after the last comment has been triaged, move on to step 4.
Now — and only now — implement the agreed-upon changes.
For review.jsonl sources, for each addressed comment:
review.jsonl.review.jsonl is now empty, delete the file.review.jsonl update together.For other sources, apply all agreed-upon code changes in one batch.
For GitHub PR general comments (which may contain multiple issues in one comment): post a single summary reply after all issues in that comment are addressed.
For document sources: update the document with status/progress as appropriate.
| Action | Command |
|---|---|
| Fetch all comments | GraphQL query on pullRequest.reviewThreads (inline) and pullRequest.comments (general) |
| Reply to inline comment | gh api repos/{owner}/{repo}/pulls/{pr}/comments/{id}/replies -X POST -f body="..." |
| Reply to general comment | gh api repos/{owner}/{repo}/issues/{pr}/comments -X POST -f body="..." |
| Resolve a thread | GraphQL mutation resolveReviewThread(input: {threadId: "..."}) |