Skip to content

Commit 400af3b

Browse files
bb-connorclaude
andauthored
Add PR template, CODEOWNERS, and three issue templates (#6)
Closes the loop on the contribution flow CONTRIBUTING.md describes. (a) .github/PULL_REQUEST_TEMPLATE.md: bakes the four pieces CONTRIBUTING.md asks for — linked issue, ADR reference, local make kb-eval-outcomes result, pre-merge checklist. The kb-gate: ack escape hatch is documented in an HTML comment but the literal ack-marker string is intentionally NOT in the template (so the Phase 2A gate doesn't false-positive on every PR). (b) .github/CODEOWNERS: auto-requests @bb-connor review on changes to load-bearing surfaces — PLAN/AGENTS/CLAUDE/CONTRIBUTING/README/LICENSE, decisions/, chio-pack/eval/, kb-engine/, chio-pack-{pyproject.toml, __init__.py}, .github/, Makefile, chio-pr-gate/, infra/, .env.example. Vault content (spec/, episodes/, playbooks/, daily/, _meta/queries/) is intentionally NOT covered — auto-requesting review on every typo fix is noise. (c) .github/ISSUE_TEMPLATE/{bug-report,feature-request,adr-proposal}.md: match CONTRIBUTING's "open an issue first" advice. Bug template asks for kb-status output and reminds the user to check Phase awareness. Feature template asks for the phase mapping and whether an ADR is required. ADR template mirrors decisions/ADR-NNNN structure (context, decision, consequences, alternatives) and tells the user to file the real ADR at decisions/ADR-NNNN-title.md after the issue converges. (d) is this PR itself: opened as a draft to verify the eval workflow's PR-comment path actually fires. The eval-outcomes table should appear as an automated comment below shortly after CI completes. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent e4540c3 commit 400af3b

5 files changed

Lines changed: 221 additions & 0 deletions

File tree

.github/CODEOWNERS

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# CODEOWNERS — auto-request reviewers on PRs touching specific paths.
2+
#
3+
# Format: <pattern> <reviewer1> [reviewer2 ...]
4+
# Last-matching pattern per file wins.
5+
# Patterns use gitignore-style globs (with leading slash anchoring to repo root).
6+
#
7+
# Docs: https://docs.github.com/en/repositories/managing-your-repositories-settings-and-customizations/customizing-your-repository/about-code-owners
8+
9+
# === Load-bearing top-level docs ===
10+
# Anything that defines the project's contract.
11+
/PLAN.md @bb-connor
12+
/AGENTS.md @bb-connor
13+
/CLAUDE.md @bb-connor
14+
/CONTRIBUTING.md @bb-connor
15+
/README.md @bb-connor
16+
/LICENSE @bb-connor
17+
18+
# === ADRs — every decision deserves review ===
19+
/decisions/ @bb-connor
20+
21+
# === Eval surface — outcome targets, rubrics, raters, runner ===
22+
# Changing what "the carve-out works" means is an ADR-level decision.
23+
/chio-pack/eval/ @bb-connor
24+
/chio-pack/chio_pack/eval/ @bb-connor
25+
26+
# === Engine ↔ pack boundary ===
27+
# kb-engine cannot import chio_*. The boundary is enforced by CI (Phase 1+).
28+
# Changes to either side require explicit review.
29+
/kb-engine/ @bb-connor
30+
/chio-pack/pyproject.toml @bb-connor
31+
/chio-pack/chio_pack/__init__.py @bb-connor
32+
33+
# === CI / repo plumbing ===
34+
/.github/ @bb-connor
35+
/Makefile @bb-connor
36+
/.gitignore @bb-connor
37+
38+
# === Phase 2 surfaces (placeholders today; moonshot deliverables) ===
39+
/chio-pr-gate/ @bb-connor
40+
41+
# === Infrastructure config ===
42+
/infra/ @bb-connor
43+
/.env.example @bb-connor
44+
45+
# Note: most vault content (spec/, episodes/, playbooks/, daily/, _meta/queries/)
46+
# is intentionally NOT in CODEOWNERS. Vault content evolves rapidly and
47+
# auto-requesting review on every typo fix is noise. Reviewers will be
48+
# tagged manually when material vault changes are proposed.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
name: ADR proposal
3+
about: Propose a new architecture decision record
4+
title: "[adr] "
5+
labels: ["enhancement"]
6+
---
7+
8+
## Context
9+
10+
<!-- What's true today and what changed that triggered this ADR? -->
11+
12+
## Proposed decision
13+
14+
<!-- What we'd choose. State the rule, not the rationale. Be specific. -->
15+
16+
## Consequences
17+
18+
**Positive**
19+
20+
-
21+
22+
**Negative**
23+
24+
-
25+
26+
## Alternatives considered
27+
28+
- **Alternative A.** Description. Why rejected.
29+
-
30+
31+
## Affected files / surfaces
32+
33+
<!-- Which parts of the repo would this change touch? -->
34+
35+
## Phase
36+
37+
<!-- Which phase, if any, depends on this ADR being Accepted? -->
38+
39+
---
40+
41+
<!--
42+
After this issue is reviewed and the direction is clear, file the actual ADR
43+
at `decisions/ADR-NNNN-title.md` per the template at
44+
`vault/_meta/templates/adr.md`. Then close this issue with a link to the
45+
filed ADR.
46+
-->
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
name: Bug report
3+
about: Report a bug in chio-developer-base
4+
title: "[bug] "
5+
labels: ["bug"]
6+
---
7+
8+
## What happened
9+
10+
<!-- One-sentence description. -->
11+
12+
## Steps to reproduce
13+
14+
1.
15+
2.
16+
3.
17+
18+
## Expected
19+
20+
<!-- What should have happened. -->
21+
22+
## Actual
23+
24+
<!-- What did happen. Include error output, stack traces, or `make kb-eval-outcomes` differences. -->
25+
26+
## Environment
27+
28+
- OS:
29+
- `make kb-status` output:
30+
31+
```
32+
```
33+
34+
## Phase awareness
35+
36+
<!--
37+
If this bug is about a Phase 1+ feature that hasn't landed yet (e.g.,
38+
`make kb-up` failing), that's not a bug — it's a not-yet-implemented
39+
item. See PLAN.md "Phased delivery" before filing.
40+
-->
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
name: Feature request
3+
about: Propose a new feature or enhancement
4+
title: "[feature] "
5+
labels: ["enhancement"]
6+
---
7+
8+
## What
9+
10+
<!-- One sentence on what you want. -->
11+
12+
## Why
13+
14+
<!-- The pain point this solves. Be specific — "easier" is not specific. -->
15+
16+
## Phase
17+
18+
<!--
19+
Which phase does this belong to (per PLAN.md)?
20+
Phase 0 / 1 / 2A / 2B / 3 / 4, or "outside the current plan".
21+
22+
If outside: how does it relate to the existing scope? Should it become
23+
its own phase or fold into an existing one?
24+
-->
25+
26+
## ADR required?
27+
28+
<!--
29+
Most new features that affect:
30+
- The vault folder layout
31+
- The engine ↔ pack boundary
32+
- The MCP tool set
33+
- Outcome-eval targets
34+
35+
require an ADR before implementation. If yes, sketch the ADR's
36+
Decision section here so the discussion can converge before someone
37+
writes code. If no, briefly justify.
38+
-->
39+
40+
## Acceptance
41+
42+
<!-- How will we know this is done? Specific, testable, ideally an eval target. -->

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
## Summary
2+
3+
<!-- 1-2 sentences. What changed and why. -->
4+
5+
## Linked issue
6+
7+
<!-- "Closes #NNN" or "Fixes #NNN" — required for non-trivial changes. If no issue: explain why none was filed. -->
8+
9+
## ADRs
10+
11+
<!--
12+
Required if this change:
13+
- Adds a top-level vault folder
14+
- Modifies the Obsidian plugin allowlist
15+
- Touches the engine ↔ pack boundary
16+
- Adjusts outcome-eval targets
17+
- Otherwise affects load-bearing infrastructure (see CONTRIBUTING.md)
18+
19+
Write "None — change is not load-bearing" or "Requires ADR-NNNN-name".
20+
-->
21+
22+
## Eval result
23+
24+
<!-- Output of `make kb-eval-outcomes` from your local checkout. Paste the table below or the summary line if non-blocked. -->
25+
26+
```
27+
```
28+
29+
## Pre-merge checklist
30+
31+
- [ ] Linked issue (or "None" justified above)
32+
- [ ] ADR referenced (or "None" justified above)
33+
- [ ] `make kb-eval-outcomes` run locally; output pasted above
34+
- [ ] No new top-level vault folders without an ADR
35+
- [ ] Frontmatter validates on any new vault notes
36+
- [ ] Change is one coherent thing (not a grab-bag)
37+
38+
<!--
39+
If this PR knowingly degrades an outcome eval, see CONTRIBUTING.md
40+
"The eval-gate contract" for the escape-hatch syntax. Add it as a
41+
top-level section in this PR body (NOT inside an HTML comment), with
42+
a one-line reason and a link to the ADR that authorizes the regression.
43+
44+
Reasons without a linking ADR are rejected.
45+
-->

0 commit comments

Comments
 (0)