chore(skills): terse Forgejo artifacts — shared communication-style rules across every skill #261
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks#261
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
User story
As an operator reading the Forgejo feed all day, I want every agent's Forgejo-facing text (PR bodies, issue comments, review verdicts) to be terse and scannable — no preamble, no emoji, no recap of what the diff already shows, bullets over prose. The agents still reason fully internally; only the output artifacts get shorter. Separate from caveman mode (#231), which affects reasoning too and is riskier to turn on globally.
Motivation
Today's PR bodies run ~400 tokens each with boilerplate (summary, test plan with checkbox-TODOs half of which are stale by merge time, "🤖 Generated with Claude Code" banner). Issue comments carry similar bloat. Multi-round review loops pay this tax 4–8 times per ticket — boss writes PR body, reviewer writes findings, boss writes address comment, reviewer re-reviews, …
Observed rough averages from this week:
Also improves human scannability. Today's PR descriptions read like press releases; they should read like commit messages.
Acceptance criteria
New shared skill fragment
skills/artifact-style.mdcontaining the communication rules (below). Short — under 40 lines. Imported by every skill template via a{{include:artifact-style}}directive or similar (or just appended at task-build time inapps/server/src/webhook-handlers.ts::buildSkillPrompt).Rules (the fragment's content)
## Test planbullets. Max 150 words total. No "I've…", "This PR…", "Summary" header repetition, no trailing "🤖 Generated with [Claude Code]" banner, no commit-message recap.overflow,contrast,a11y,behavior,test-gap,doc-gap). No repeated preamble explaining what the PR does.Skill template wiring
skills/implement.md,skills/implement-delta.md,skills/address-review.md,skills/address-review-delta.md,skills/review.md,skills/review-delta.md,skills/design-implement.md,skills/design-review.md,skills/design-breakdown.md,skills/merge.md,skills/rebase.md,skills/fix-ci.md— each gets a reference toartifact-style.mdnear the top.skills/breakdown.mdstays with its current rich issue-body format — the per-ticket acceptance criteria + out-of-scope structure is load-bearing for downstream dispatches. Add a note at the top: "The artifact-style rules apply to the tracking comment you post at the end, not to the created issues' bodies."skills/caveman.md(from #231) is unaffected — artifact-style is additive, not conflicting.Skill-template QA
Out of scope
/breakdown.References
skills/*.md— every template.skills/caveman.md(issue #231) — sibling mechanism, reasoning-level.apps/server/src/webhook-handlers.ts::buildSkillPrompt— the task-build site where appendices get concatenated.CLAUDE.mdglobal instructions (~/.claude/CLAUDE.md) — already codifies "PR description detail belongs in body, not title" + "focus on WHY"; this ticket makes that contract explicit for agents.