Skip to main content

Project files and ownership

aps init creates a small project contract and the planning structure selected in the wizard or command flags. The exact optional directories vary by profile.

project/
├── .aps/
│ ├── config.yml
│ └── context/
└── plans/
├── index.aps.md
├── aps-rules.md
├── project-context.md
├── modules/
├── execution/
├── designs/
├── decisions/
└── releases/

Files you own​

PathPurpose
plans/index.aps.mdOverall problem, success criteria, and module map
plans/modules/*.aps.mdModule boundaries and work items
plans/execution/*.actions.mdOptional action plans
plans/project-context.mdProject-specific workflow and technical context
plans/designs/*.design.mdOptional technical designs
plans/decisions/*.mdOptional durable decision records
plans/releases/v*.mdOptional release narratives

Commit these files with the code they govern.

APS-managed guidance​

plans/aps-rules.md gives an AI assistant portable APS behaviour. Templates may also be installed as hidden files so they do not look like active plan content. aps update can refresh APS-managed templates and skills without rewriting your plan documents.

Project contract​

.aps/config.yml records:

  • the expected CLI version;
  • the profile and project shape used by initialisation;
  • the plan, documentation, and tooling paths;
  • selected templates and components; and
  • optional tool-integration choices.

Project-scoped commands discover this file by walking up from the current directory.

Temporary context​

aps start writes .aps/context/<WORK-ITEM-ID>.md. The file is regenerated from the current plan and is normally ignored by source control. Do not treat it as a second source of truth.

Naming conventions​

DocumentConventionExample
Indexindex.aps.mdplans/index.aps.md
Modulekebab-case ending in .aps.mdplans/modules/auth.aps.md
Action planwork-item or module ID ending in .actions.mdplans/execution/AUTH-003.actions.md
Designdate and slug ending in .design.mdplans/designs/2026-07-20-auth.design.md
Releaseversion beginning with vplans/releases/v1.2.0.md

Custom plan locations​

Set plans_dir in .aps/config.yml, or pass --plans to commands that expose that option. aps lint accepts a file or directory as its positional target:

aps lint packages/catalog/plans
aps next --plans packages/catalog/plans

Use the monorepo guide before creating several plan roots; a single tagged plan is simpler when packages share one backlog.