aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-04-24 19:11:41 -0500
committerCraig Jennings <c@cjennings.net>2026-04-24 19:11:41 -0500
commite5b54c24afdd569765b215732884bd0a8f2758a9 (patch)
tree7adda3a4d514b5259d4f75d0da24fdfdde9c1c77
parent060636d2f9acc8c37bc5873f109ffa16c270f98a (diff)
downloadrulesets-e5b54c24afdd569765b215732884bd0a8f2758a9.tar.gz
rulesets-e5b54c24afdd569765b215732884bd0a8f2758a9.zip
docs: split Linear vs PR structure; propagate content-scope rule to Tier 1 skills
Linear ticket bodies are now Problem + Fix only. PR descriptions keep the four-section format (Problem, Fix, Why this fixes it, How it was tested). Linear's GitHub integration handles the cross-link via the PR body's Linear: line. Cross-ref to the content-scope rule appended at the end of each Tier 1 skill that produces public artifacts: testing.md, arch-document, arch-decide, arch-design, review-code, respond-to-review, brainstorm, codify. Single-source the rule in commits.md, point at it from each output-producing skill.
-rw-r--r--arch-decide/SKILL.md4
-rw-r--r--arch-design/SKILL.md4
-rw-r--r--arch-document/SKILL.md4
-rw-r--r--brainstorm/SKILL.md4
-rw-r--r--claude-rules/commits.md25
-rw-r--r--claude-rules/testing.md4
-rw-r--r--codify/SKILL.md4
-rw-r--r--respond-to-review/SKILL.md4
-rw-r--r--review-code/SKILL.md4
9 files changed, 52 insertions, 5 deletions
diff --git a/arch-decide/SKILL.md b/arch-decide/SKILL.md
index 8446ca3..b0078fb 100644
--- a/arch-decide/SKILL.md
+++ b/arch-decide/SKILL.md
@@ -445,3 +445,7 @@ adr link 2 "Complements" 1 "Is complemented by"
Forked from [wshobson/agents](https://github.com/wshobson/agents) — MIT licensed.
See `LICENSE` in this directory for the original copyright and terms.
+
+## Content scope
+
+Output this skill produces that gets committed or shared with the team must follow the *Content scope for public artifacts* rule in [`commits.md`](../claude-rules/commits.md): no local paths, no private repo names, no personal tooling references.
diff --git a/arch-design/SKILL.md b/arch-design/SKILL.md
index 90b58cf..744b8d0 100644
--- a/arch-design/SKILL.md
+++ b/arch-design/SKILL.md
@@ -243,3 +243,7 @@ After the brief is Accepted:
- `arch-decide` — record each Open Decision as an ADR under `docs/adr/`
- `arch-document` — expand into a full arc42-structured document under `docs/architecture/` with C4 diagrams
- `arch-evaluate` — once code exists, audit it against this brief
+
+## Content scope
+
+Output this skill produces that gets committed or shared with the team must follow the *Content scope for public artifacts* rule in [`commits.md`](../claude-rules/commits.md): no local paths, no private repo names, no personal tooling references.
diff --git a/arch-document/SKILL.md b/arch-document/SKILL.md
index 0690038..24a3720 100644
--- a/arch-document/SKILL.md
+++ b/arch-document/SKILL.md
@@ -311,3 +311,7 @@ arc42 is a living document. Re-run `arch-document` when:
- A scenario's behavior or SLO changes → section 6 or 10
Commit each regeneration. The document's Git history is part of the architecture record.
+
+## Content scope
+
+Output this skill produces that gets committed or shared with the team must follow the *Content scope for public artifacts* rule in [`commits.md`](../claude-rules/commits.md): no local paths, no private repo names, no personal tooling references.
diff --git a/brainstorm/SKILL.md b/brainstorm/SKILL.md
index 1b9ad08..b47523f 100644
--- a/brainstorm/SKILL.md
+++ b/brainstorm/SKILL.md
@@ -189,3 +189,7 @@ Before declaring the design accepted:
- **Validate in chunks.** 200-300 words, then check.
- **YAGNI ruthlessly.** Remove anything not justified by the problem statement.
- **Back up when needed.** Revising early beats committing to wrong.
+
+## Content scope
+
+Output this skill produces that gets committed or shared with the team must follow the *Content scope for public artifacts* rule in [`commits.md`](../claude-rules/commits.md): no local paths, no private repo names, no personal tooling references.
diff --git a/claude-rules/commits.md b/claude-rules/commits.md
index 7fcd4ba..876677d 100644
--- a/claude-rules/commits.md
+++ b/claude-rules/commits.md
@@ -98,15 +98,30 @@ project. Don't mention:
Rule of thumb: if a teammate couldn't find the referenced thing without
the user's help, don't reference it.
-Structure shipped-fix descriptions in this order, using the headings
-verbatim:
+Different artifact types carry different content. Don't duplicate.
+
+**Linear ticket bodies:** two sections, in order.
1. **Problem** — what's wrong, with enough detail that a teammate can
recognize the same failure mode in their own work.
-2. **Fix** — what changed.
+2. **Fix** — what changed (or what's proposed).
+
+The causal "why" and the test verification belong in the PR, not the
+ticket. Linear's GitHub integration auto-cross-links once the PR body
+includes the `Linear:` line, so the ticket reader reaches the PR
+without needing a body-level link.
+
+**PR descriptions:** four sections, in order. Same first two as the
+ticket, plus:
+
3. **Why this fixes it** — causal link, one or two sentences.
-4. **How it was tested** — skip for proposals, specs, or discussions.
- Required for shipped fixes.
+4. **How it was tested** — skip for proposals, specs, or discussions;
+ required for shipped fixes.
+
+The PR is the technical artifact. It carries the detail.
+
+**PR review comments** are conversational and don't follow this
+structure — they follow the Voice and Focus rules above.
Verbose preambles, motivational language, and context unrelated to the
problem belong out. Same conciseness pressure as commit-message bodies.
diff --git a/claude-rules/testing.md b/claude-rules/testing.md
index b91b76c..02c6ce0 100644
--- a/claude-rules/testing.md
+++ b/claude-rules/testing.md
@@ -275,3 +275,7 @@ If you catch yourself thinking any of these, stop and write the test.
- Non-deterministic tests (random without seed, network in unit tests)
- Testing framework behavior instead of your code
- Ignoring or skipping failing tests without a tracking issue
+
+## Content scope
+
+Test code, fixtures, docstrings, and comments are checked into the repo and visible to the team. They must follow the *Content scope for public artifacts* rule in [`commits.md`](commits.md): no local paths, no private repo names, no personal tooling references.
diff --git a/codify/SKILL.md b/codify/SKILL.md
index 082b974..4a0b5e6 100644
--- a/codify/SKILL.md
+++ b/codify/SKILL.md
@@ -190,3 +190,7 @@ The grow-and-refine / evidence-backed approach draws on Agentic Context Engineer
- **Avoiding context collapse** — resist the temptation to rewrite old entries into smoother prose; specificity is the value
This skill implements the Curation phase. Reflection and Generation happen in the main conversation.
+
+## Content scope
+
+Output this skill produces that gets committed or shared with the team must follow the *Content scope for public artifacts* rule in [`commits.md`](../claude-rules/commits.md): no local paths, no private repo names, no personal tooling references.
diff --git a/respond-to-review/SKILL.md b/respond-to-review/SKILL.md
index c1cc996..3508fa5 100644
--- a/respond-to-review/SKILL.md
+++ b/respond-to-review/SKILL.md
@@ -48,3 +48,7 @@ For each review comment, before implementing anything:
- Summarize what was implemented, what was deferred, and what needs discussion
- Link any follow-up issues created for out-of-scope suggestions
+
+## Content scope
+
+Output this skill produces that gets committed or shared with the team must follow the *Content scope for public artifacts* rule in [`commits.md`](../claude-rules/commits.md): no local paths, no private repo names, no personal tooling references.
diff --git a/review-code/SKILL.md b/review-code/SKILL.md
index f01094c..1bb2bde 100644
--- a/review-code/SKILL.md
+++ b/review-code/SKILL.md
@@ -347,3 +347,7 @@ None.
- **Important** → fix, or deliberately defer with an ADR (run `/arch-decide`)
- **Minor** → follow-up issues or a cleanup PR
- **Intent-vs-Delivery gaps** → either file tickets for the missing pieces or update the plan to reflect reality
+
+## Content scope
+
+Output this skill produces that gets committed or shared with the team must follow the *Content scope for public artifacts* rule in [`commits.md`](../claude-rules/commits.md): no local paths, no private repo names, no personal tooling references.