Changing heuristics = MINOR/PATCH version bump These are soft rules and conventions. They are strongly recommended but can be adapted based on context. Violations are not breaking changes.
| Object | Convention | Examples |
|---|---|---|
| Project slug | kebab-case |
my-saas-app, campaign-q1-2026 |
| Session file | YYYY-MM-DD.md |
2026-02-13.md |
| Decision file | <timestamp>.json |
1739001234.json |
| Plan file | plan-v<NNN>.md |
plan-v001.md |
| Folder names (PARA) | PascalCase | Projects/, Areas/, Resources/, Archive/ |
| Sub-folder names | kebab-case | ai-agents/, web-development/ |
| Workflow files | kebab-case | new-project.md, para-discipline.md |
| Object | Convention | Examples |
|---|---|---|
| Components & classes | PascalCase |
UserCard, AuthService |
| Variables & functions | camelCase |
isLoading, calculateTotal() |
| Constants & env vars | UPPER_SNAKE_CASE |
MAX_RETRY_COUNT, API_BASE_URL |
| CSS classes & IDs | kebab-case |
.btn-primary, #main-content |
| HTML data attributes | kebab-case |
data-user-id, data-is-active |
| Metadata JSON keys | camelCase |
"projectName", "lastSync" |
README.md,LICENSE,VERSION,CHANGELOG.mdfollow established uppercase conventions- Tool-specific files follow their tool's requirements:
package.json,tsconfig.json
Agent should load context in this sequence (highest priority first):
- Project Contract:
Projects/<project>/project.md - Project Rules:
Projects/<project>/.agents/rules/ - Workspace Rules:
.agents/rules/ - Artifacts:
Projects/<project>/artifacts/(tasks, plans, walkthroughs) - Active Memory:
Projects/<project>/.beads/ - Abstract Knowledge:
Areas/ - Reference:
Resources/
- Scope First: Always look inside the active project folder before searching elsewhere
- Ignore Archive: Do not read from
Archive/unless the user explicitly requests historical data - Ignore Passive Projects: Do not scan other projects unless working on an integration
- Beads Priority: For recurring issues, prefer
.beads/data over general documentation
When beginning work on a project (via /open or context detection), the agent SHOULD load project-specific rules using a lazy-loading protocol:
- Check for
Projects/<project>/.agents/rules.md(lightweight index, ~5β10 lines). - If index exists: read it and note trigger conditions. Load a specific rule file only when the current action matches its trigger. Do NOT read all rule files upfront.
- If index does not exist: check if
Projects/<project>/.agents/rules/has files. If yes, list names and load on demand. If empty β skip.
Rules Index format β each project MAY provide:
# Project Rules Index
| Rule | Trigger | File |
| :-------- | :----------- | :---------- |
| Rule Name | When to load | filename.md |Use SemVer (MAJOR.MINOR.PATCH) for all projects:
| Level | When to use | Agent autonomy |
|---|---|---|
| PATCH | Bug fixes, docs, small features, dependency bumps | Agent MAY increment alone |
| MINOR | Significant features, architectural changes | Agent MUST ask for approval |
| MAJOR | Breaking changes, incompatible structure changes | Agent MUST present full plan |
When bumping a version, update ALL locations:
CHANGELOG.md(add new entry at the top)package.json(if applicable)- UI elements (footers, badges)
README.mdbadges (if applicable)
- Follow Keep a Changelog format
- Group changes:
Added,Changed,Fixed,Removed - Include date:
## [X.Y.Z] - YYYY-MM-DD
Recommended project directory layout:
<project-slug>/
βββ project.md # YAML frontmatter: goal, deadline, status, dod, milestones
βββ sessions/
β βββ YYYY-MM-DD.md # Daily session logs
βββ artifacts/
β βββ tasks/
β β βββ backlog.md # Canonical task store
β β βββ sprint-current.md # Hot Lane (quick tasks)
β β βββ done.md # Completed tasks archive
β βββ plans/
β β βββ [plan-name].md # Descriptive name (e.g., fix-auth-flow.md)
β β βββ done/ # Archived plans + completion reviews
β βββ walkthroughs/ # Task verification checklists (from /verify)
β βββ para-decisions/
β β βββ <timestamp>.json # Decision records
β βββ outputs/ # Deliverables
βββ .beads/
β βββ seeds.md # Ideas, hypotheses, raw notes
βββ README.md
Projects SHOULD define strategic milestones in project.md frontmatter:
milestones:
- name: "Core MVP"
status: done # done | in-progress | planned
shipped_in: "1.0.0" # Only for done items
- name: "Public Launch"
status: in-progress
- name: "Advanced Features"
status: plannedRules:
- Use feature-first naming (describe the value, not the version number)
- Only add
shipped_inafter a milestone is released - Future milestones have NO version β avoids speculative versioning
- Order = implicit priority (top = most important)
- Public-facing roadmaps (e.g., README) can be derived from milestones
- Creation: Create beads in
.beads/when encountering repeated issues, project-specific quirks, or critical decisions - Messy Thinking: Beads are allowed to be messy, partial, and contradictory while the project is active
- Graduation Ritual: Before archiving, perform a "Graduation Review" β move valuable knowledge from beads to
Areas/,Resources/, or.agents/rules/
- Git operations should only affect the
repo/directory (for framework projects) - Session logs, local artifacts, and metadata are not committed unless explicitly tracked in repo
- Never run git commands at workspace root unless updating the template repository itself
- When referencing content from another project, use full relative paths
- Prefer creating a shared resource in
Resources/over cross-project file dependencies - Each project should be as self-contained as possible
Projects can declare a coordination type to manage satellite projects. Conventions:
Project Types:
| Type | Purpose | Has repo/ | Has satellites |
|---|---|---|---|
standard |
Regular project (default) | Yes | No |
ecosystem |
Coordinates satellites (no code) | No | Yes |
meta-project |
Product + coordinates satellites | Yes | Yes |
Meta-Project Behavior (v1.7.6):
- Meta-projects combine
standardbehavior (hasrepo/, runs git) withecosystemcoordination (hassatellites, displayed in/open, validated by/para-audit). - Use case: platform projects that produce code AND govern downstream satellites (e.g., a CLI framework coordinating its documentation site and plugin catalog).
- Workflows SHOULD treat
meta-projectlikestandardfor git operations, and likeecosystemfor satellite display.
Cross-Project Plan (@ prefix):
Satellite projects MAY reference plans from their ecosystem or meta-project:
# In satellite project.md:
ecosystem: my-ecosystem
active_plan: "@my-ecosystem/plans/shared-plan.md"Resolution: @{ecosystem}/plans/xxx.md β Projects/{ecosystem}/artifacts/plans/xxx.md
Ecosystem Behavior:
- Ecosystem projects SHOULD NOT have a
repo/directory (no source code) - Workflows SHOULD skip git operations for ecosystem projects
/openSHOULD display satellite list when opening an ecosystem or meta-project/para-auditSHOULD validate ecosystem/meta-project β satellite consistency
Each workflow should declare kernel compatibility:
kernel_compat: ">=1.0.0 <2.0.0"This helps detect issues when the kernel changes (e.g., renamed files, changed schemas).
Every governed library (workflows, rules, skills) in templates/common/agents/ MUST include
a catalog.yml file with the following minimum fields per item:
| Field | Required | Description |
|---|---|---|
id |
β | Stable kebab-case identifier |
name |
β | Human-readable name |
version |
β | Deprecated (v1.7.13) β use VERSIONS.yml |
kernel_min |
β | Minimum kernel version required |
kernel_max |
β | Optional max kernel version |
entrypoint |
β | Relative path to the markdown file |
description |
β | Short description |
tags |
β | Optional list of tags |
Schema: kernel/schema/catalog.schema.json
Version tracking (v1.7.13): Item versions are tracked centrally in
VERSIONS.ymlat the repo root. Theversionfield in catalog items is deprecated and optional for backward compatibility.
The installer (para install, para update) MUST validate kernel_min / kernel_max
against the workspace's kernel version before syncing. Incompatible items are skipped
with a clear warning.
Knowledge Items (KIs) are curated, persistent knowledge stored outside the workspace in the host AI platform's knowledge store. They bridge ephemeral conversations with long-term institutional memory.
- KIs MUST conform to
kernel/schema/ki.schema.json - KIs MUST have at least one artifact file in their
artifacts/directory - KIs SHOULD be created and updated via the
/para-knowledgeworkflow
- KI scope MUST be one of:
workspace,project,ecosystem - System KIs (
owner: para) slug MUST start withpara_prefix - System KIs MUST NOT be modified by user ad-hoc β only via version alignment
- User KIs MUST NOT use the
para_prefix
- Agent MUST verify KI content against active code before applying
- KIs with >50% broken references MUST be updated or archived
- KI summary MUST NOT exceed 800 characters
- KI slug MUST match
^[a-z0-9_]{3,60}$β no path separators or traversal characters