Governance Reference¶
This document defines how basecoat is maintained, how decisions are made, and what standards all contributors — human and AI — must follow.
Decision-Making¶
Principles¶
- Default to the issue tracker. Decisions that affect behavior, structure, or standards belong in issues. Watercooler discussions don't age well.
- Ship iteratively. Prefer small, scoped PRs over large monoliths.
- No undocumented exceptions. If you deviate from a standard, document why in the PR or issue.
- Agents are first-class contributors. AI agents follow the same process as humans. No shortcuts.
Who Can Decide What¶
| Decision | Who Decides |
|---|---|
| New standard or instruction | Repo owner + 1 reviewer |
| New agent or skill | Issue + PR approval |
| Breaking change to existing standard | Issue required, explicit migration note |
| CI/CD changes | Repo owner |
| Governance changes (this document) | Issue required, must go through PR |
Sprint Process¶
basecoat uses a sprint model aligned to GitHub milestones.
Sprint Cadence¶
- Sprint duration: 2 weeks
- Milestone format:
Sprint N — <theme> - Version cut: at sprint close, if deliverables are complete
Sprint Lifecycle¶
- Backlog — issues labeled with future sprint or
backlog - Sprint Planning — issues assigned to the sprint milestone, prioritized
- Active Sprint — work in progress; PRs open against
main - Review — all PRs reviewed and merged; CI green
- Release — version bumped, CHANGELOG updated, tag cut
- Retrospective — brief notes in the milestone description or a
retroissue
Labels¶
| Label | Meaning |
|---|---|
sprint-N |
Assigned to Sprint N |
backlog |
Not yet sprint-assigned |
blocked |
Blocked by dependency |
spec-required |
Needs PRD/spec before work starts |
governance |
Governance-related change |
security |
Security-related change |
v1.0.0 |
Targeting v1.0.0 release |
Asset Type Labels (Custom)¶
These labels identify the type of customization asset and enable discovery/filtering:
| Label | Meaning | File Location |
|---|---|---|
agent |
Copilot agent definition | agents/*.agent.md |
skill |
Reusable skill or template collection | skills/*/SKILL.md |
instruction |
Custom instruction file | instructions/*.instructions.md |
prompt |
Prompt template or starter | prompts/*.prompt.md |
Usage: Apply the asset type label to all issues related to creating, updating, or fixing that asset type. This enables filtering by asset type in issue discovery (e.g., is:issue label:agent to find all agent-related work).
Issue Type Labels¶
These labels classify the nature of the issue:
| Label | Meaning |
|---|---|
bug |
Unexpected behavior, error, or regression |
enhancement |
New feature request or improvement |
documentation |
Missing or incorrect documentation |
question |
Question or clarification request |
chore |
Maintenance, refactoring, or tech debt |
security |
Vulnerability or security concern |
Priority Labels¶
| Label | SLA | Criteria |
|---|---|---|
priority:high |
1 hour | Blocking work, data loss risk, security breach |
priority:medium |
4 hours | Major feature impact, significant user frustration |
priority:low |
1 week | Cosmetic, nice-to-have, or minor improvement |
Approval Status Labels¶
| Label | Meaning |
|---|---|
approved |
Issue has been approved for implementation |
copilot-agent |
Issue is assigned to and being worked on by a Copilot agent |
Discovery Patterns¶
Common search patterns for issue discovery:
is:issue label:agent— Find all agent-related issuesis:issue label:sprint-3 label:skill— Find Sprint 3 skill workis:issue label:bug label:priority:high— Find high-priority bugsis:issue label:blocked is:open— Find open blocked issuesis:issue label:documentation— Find documentation work
Versioning¶
basecoat follows Semantic Versioning 2.0.0.
| Increment | When |
|---|---|
MAJOR |
Breaking change to consuming repo contract (file moves, schema breaks, removed required files) |
MINOR |
New agents, skills, instructions, templates, or non-breaking additions |
PATCH |
Bug fixes, typos, CI tweaks, documentation corrections |
Version Files¶
version.json— machine-readable current versionCHANGELOG.md— human-readable history, one section per release- Git tag:
vMAJOR.MINOR.PATCH
Release Steps¶
- Update
version.json - Update
CHANGELOG.md— add new section, reference issues/PRs - Commit:
chore: bump version to vX.Y.Z - Tag:
git tag vX.Y.Z - Push tag:
git push origin vX.Y.Z - GitHub Release created by
package-basecoat.ymlworkflow
Agent Standards¶
All AI agents that work in this repo — whether built into tooling or invoked externally — must follow these standards.
Mandatory Rules for All Agents¶
- Issue-first. No implementation without an issue. If none exists, create one.
- No secrets. Never write credentials, tokens, keys, or PII to any file or commit.
- PR-only. No direct commits to
main. Create a branch, open a PR. - Branch naming. Follow
<type>/<issue-number>-<short-description>. - Stop and ask when scope is ambiguous, when a decision affects other contributors, or when proceeding would cause irreversible change.
- Reference the issue in every commit message and PR description.
When an Agent Should Stop and Ask¶
- The issue is ambiguous or contradictory
- The change would modify
mainbranch protection or CI/CD pipelines - A secret or credential is needed to proceed
- The scope has expanded beyond the original issue
- A dependency (another PR, issue, or external service) is not ready
When an Agent Can Proceed Without Asking¶
- The issue is clear and scoped
- All dependencies are resolved
- The change is additive (new files, new content)
- No secrets or sensitive data are involved
- CI checks will validate correctness
What Requires an Issue vs. What Can Be Done Inline¶
Always Requires an Issue¶
- New instruction file
- New agent definition
- New skill
- New template
- New documentation section (not just a fix)
- Any change to governance documents (this file, CONTRIBUTING.md, governance.instructions.md)
- CI/CD workflow changes
- Breaking changes of any kind
Can Be Done Inline (No Issue Required)¶
- Typo fixes that do not change meaning
- Whitespace or formatting corrections
- Fixing a broken link
- Updating a version number as part of a release commit
- Minor clarifications to existing documentation (single sentence or less)
If in doubt, open an issue. It takes 30 seconds and creates a paper trail.
Governance Documents Index¶
| File | Purpose |
|---|---|
CONTRIBUTING.md |
How to contribute — branch naming, commits, PRs, secrets |
docs/GOVERNANCE.md |
This file — decisions, sprints, versioning, agent standards |
instructions/governance.instructions.md |
AI agent instruction set — authoritative rules for agents |
docs/templates/PRD_TEMPLATE.md |
Product requirements doc template |
docs/templates/ISSUE_TEMPLATE.md |
Issue template for bugs and features |
Amending Governance¶
Governance documents are not frozen. To change them:
- Open an issue with the
governancelabel - Describe what should change and why
- Open a PR with the changes
- Get at least one approval
- Merge
No governance changes via direct commit. No exceptions.