AkurAI Build
Menu

cosmic-mobile

public

Latest change 43b1f40498083af2bf229374298cf28e78c02f75 - Add minimal Rust Wayland shell by AkurAI Build

# pm file formats

## Generated vs. hand-edited

| File | Written by |
|------|-----------|
| `.tasks/TASKS.md` | `pm sync` only — fully regenerated |
| `.plan/PLAN.md` epic table | `pm sync` (rest of PLAN.md is hand-edited) |
| `.docs/INDEX.md` table | `pm sync` (row text comes from each doc's `## Summary` first line) |
| `.tasks/*.md`, `.plan/epics/*.md`, `.docs/*.md` | hand-edited (created via `pm new`) |
| `.memories/MEMORIES.md` | hand-edited; `pm log` prepends to `## Project status` |
| `.codebase_index/INDEX.md` | hand-edited feature→file map |
| `.codebase_index/embeddings.json` | search cache, never edit; safe to delete (rebuilds) |

## Entry file field grammar

Fields are parsed by exact line shape `- **Name:** value` (regex-matched; keep the
bold-colon format):

- Task: `- **Epic:** [slug](../.plan/epics/slug.md)` or `none`;
  `- **Status:** backlog|active|blocked|done`; `- **Updated:** YYYY-MM-DD`
- Epic: `- **Status:** planned|active|done`; `- **Updated:** YYYY-MM-DD`
- Doc: `- **Updated:** YYYY-MM-DD`; first line under `## Summary` feeds the docs index

Templates live at `_template.md` in each directory — `pm new` copies them and fills
`<name>`/`<Topic>`/`YYYY-MM-DD`. Don't put real relative links in templates; validate
skips `_template.md` but link-checks everything else.

## Validate checks

Status values, `Updated` date format, every relative `.md` link resolves, every entry
file appears in its index (drift → "run pm sync"), and `.memories/` is scanned for
secret-value patterns (private keys, AWS keys, JWTs, `password:`/`token=`-style pairs).

## Search internals

State files chunk per `##` section (`file.md::Heading` ids); code chunks are ~40-line
windows (`file.py:L41` ids) over known source extensions, skipping dot-dirs,
node_modules-style junk, and files >200KB. Embeddings (bge-small, :8081) are cached by
content hash in `.codebase_index/embeddings.json`; top 12 cosine hits are reranked
(bge-reranker, :8082). Stale cache entries for deleted chunks drop on next search.