Spec Template
Provides a front-matter schema and writing rules for Brim language specification documents, covering status lifecycle and content conventions.
What this file does
Provides a front-matter schema and writing rules for Brim language specification documents, covering status lifecycle and content conventions.
When to use it
- Writing a new spec for a Brim language feature
- Reviewing or proposing changes to an existing spec
- Deprecating an outdated spec while keeping it for reference
- Aligning a draft spec with canonical syntax before acceptance
Assumes this stack
id: layer.topic # required layer: core|sugar|emit|std|toolchain # required title: Your Title # required authors: ['your-handle'] # required updated: YYYY-MM-DD # required status: draft|proposed|accepted|deprecated # required version: 0.0.0 # optional; include when status is accepted
Spec Template
Front Matter
- id: Unique identifier for the spec - layer.topic
- layer: The layer this spec belongs to - core, sugar, emit, std, toolchain
- title: Title of the spec
- authors: List of authors
- updated: Date of last update
- status: Status of the spec - draft, proposed, accepted, deprecated
- version: release version when this spec was accepted - only valid for
acceptedspecs
Specification Guidelines
Pre-release Note: During the pre-release phase, specs record only the current canonical state. Do not add migration notes, deprecation guidance, or legacy syntax. When behavior changes, replace the content outright. Historical context may be kept separately outside the spec tree if needed.
- Only documents with status
acceptedare considered authoritative with regard to syntax. For other statuses, the document is informative only, and will be aligned with the canonical spec upon acceptance. - Specs should be as concise as possible while still being clear.
- Specs should include examples.
- Specs should avoid redundancy with other specs; if a concept is defined elsewhere, link to it.
- Prefer specification of syntax by example rather than formal grammar where possible.
- New specs begin as status
draft, then move toproposedwhen ready for review, and finally toacceptedwhen approved. Proposedspecs should use canonical syntax, but may include non-normative discussion of alternatives. If the proposal is a syntax change, the spec should include before-and-after examples.Acceptedspecs should avoid discussion of alternatives, and negative examples (what is not allowed).Acceptedspecs must include a version number indicating the release in which the spec was accepted.- Specs with status
deprecatedare no longer authoritative, but remain for historical reference. - Non-canonical references must always remain status
draft. - See
spec/template.mdfor a spec template.
What's inside
Front-matter field definitions, status lifecycle rules, and 10 content guidelines for spec authors.
Change this for your project
- Replace
id: layer.topicwith your spec's unique identifier - Replace
layer: core|sugar|emit|std|toolchainwith the appropriate layer - Replace
authors: ['your-handle']with your GitHub handle or name - Replace
status: draft|proposed|accepted|deprecatedwith the current status
Where it goes
Keep it in your repository where the agent or team that needs it will read it.
Related Documents
Agent/Skill 模板搜尋策略
Provides 20 search queries and heuristics to find AI agent/skill template files on GitHub and the web.
AI Trending Bot Implementation Plan
Defines a 5-stage pipeline to collect, score, analyze, report, and deliver trending AI content from 6 platforms using Python and Claude CLI.
template
Turns the AI into a Socratic tutor that guides study sessions without giving answers or doing homework.