Core Templates
Start your own workspace instructions, advice, reusable shapes, capabilities, maps, and memory without inventing each file from scratch. This is a good first Extension if you plan to write your own content.
- Package ID:
core-templates - Depends on: Nothing
- Startup visibility: This package adds no entries to startup indexes. The Templates root entrypoint stays on demand, so these starters do too.
These counts describe this package's own entries when their parent routes expose them in Entries and are read. Required packages add their own entries. Linked files stay on demand unless selected or required.
Install
Package files follow your installation choices. Essentials leaves out Templates, so this package skips its starters and copies no package files. The CLI still records it as installed and names the excluded category in the result. If you want the starters, restore the Templates category before installing the package. Preview the restoration, review the plan, then apply:
open-forge route init templates --framework --dry-run
open-forge route init templates --framework
From your installed Open Forge workspace, preview the package and its required packages:
open-forge extension install core-templates --dry-run
Review the plan. Then apply it:
open-forge extension install core-templates
The CLI installs required packages from the same catalogue. See the Extension guide for scripts using --automatic, updates, removal, or a local source.
Why it exists
Each Core category has a distinct role. A Directive states obligations under Instructions, Guidance explains a recommendation, and a Pattern shows a reusable shape. One starter per category makes that distinction clear before you write.
It's separate from the Development Toolkit because writing your own workspace content isn't specific to software development.
What it installs
.agents/templates/core/
_core.md <- how to choose a starter
directive.md <- required behavior
guidance.md <- recommended approach
pattern.md <- reusable shape
skill.md <- native SKILL.md capability
template.md <- another Template
map.md <- pointers to sources
memory.md <- a general Memory record
What each file is for
| File | Starts a... | Sections you fill in |
|---|---|---|
_core.md | (entrypoint) | Explains how to pick the right role before copying: a Directive requires, Guidance recommends, a Pattern shapes, a Skill performs, a Template starts, a Map points, and Memory remembers. |
directive.md | Directive | Instructions: required actions, conditions, and meaningful exceptions. An optional Example illustrates the instructions. |
guidance.md | Guidance | Situation, Recommended Approach, Reasons And Tradeoffs, Example. |
pattern.md | Pattern | A brief Applies To, then the concrete Shape. Keep Variations and Related Requirements only when useful. |
skill.md | Skill | A fenced native SKILL.md with name, description, Purpose, Required Inputs And Resources, Instructions, and Result. |
template.md | Template | Guidance for the future reader, then the sections you name for a recurring artifact. Add a section only when it helps create the artifact. |
map.md | Map | Scope and Sources: where each source is and when to read it. |
memory.md | Memory record | Summary And Scope, Details And Sources, Limits And Next Use. Use it when no specialized record type fits. |
How to use it
Keep the smallest complete result. Combine overlapping answers and remove unused prompts and optional sections. Preserve required structure and enough context for a readable progression.
Use the relevant Core Template to write this workspace rule. Keep it in the narrowest useful scope and follow the destination's loading rules.
With the CLI, route create --template copies a Template's body into a new routed file. You supply the destination's description and tags, then replace the prompts. If a scope in the path doesn't exist yet, such as frontend/ here, the command creates its folder and entrypoint too:
open-forge route create directives/frontend/components \
--template=templates/core/directive \
--description="Keep components presentational" \
--tag=LoadNow --tag=Directive --tag=Frontend \
--dry-run
Good to know
- The Skill starter is different. Copy only the fenced block inside
skill.mdinto{skill-name}/SKILL.mdunder your Skills scope. The wrapper is a routed Template, not a capability, androute createdoesn't create native Skill packages. - Choose a specialized Template from another Extension when one already fits, such as a Task from Planning or a Decision record.
- Copies are independent. Package updates never touch the files you created from these starters.
Next: Install this package, or update and remove Extensions.