generated from eblume/project-template
Some checks failed
Build / validate (pull_request) Failing after 3m21s
`heph list --project <name>` lists a project's outstanding tasks by name (subtree-expanded, resolved server-side via a new project.scope path that reuses the view machinery; errors on unknown names). `--json` prints raw rows — node_id, canonical_context_id, attention/state/do_date/late_on/ recurrence/project_id — for scripting and agents. Store::project_scope on the trait + LocalStore + RemoteStore; new project.scope RPC and a flattened ListParams so `list` accepts an optional project name. Test covers resolve-by-name + unknown-name error. AGENTS.md thinned to tight command/pattern sections: dropped the historical parity narrative and the verbose roadmap section; added a "Working state" section documenting `heph list --project Hephaestus [--json]` as the way to inspect heph's self-hosted roadmap. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
71 lines
4.6 KiB
Markdown
71 lines
4.6 KiB
Markdown
# AGENTS.md
|
|
|
|
Guidance for Claude Code working in this repository. See also [[ai-assistance-guide]].
|
|
|
|
## Overview
|
|
|
|
**hephaestus** — Personal context management system: wiki-style knowledge base and task management.
|
|
|
|
> **This is a generated repo, not the template source.** C1/C2 changes use feature branches + PRs (`tea pr create`); noteworthy changes get changelog fragments in `docs/changelog.d/`.
|
|
|
|
## Rules
|
|
|
|
1. **Always run `mise run ai-docs` at session start**
|
|
This will refresh your context with important information you will be assumed to know and follow.
|
|
**Read the full output** — never truncate, pipe to `head`/`tail`, or skip sections.
|
|
2. **Classify the change as C0/C1/C2 before starting** (see below) — this determines branching and PR requirements
|
|
3. **Generated repos use feature branches + PRs for C1/C2** — checkout main, pull, create branch, open PR via `tea pr create`. This template source repo usually stays C0/direct-to-main so it remains clean and templatable.
|
|
4. **Use changelog fragments in generated repos, not as template residue** — `docs/changelog.d/<name>.<type>.md`
|
|
Types: `feature`, `bugfix`, `infra`, `doc`, `ai`, `misc`
|
|
- **Generated repos:** add fragments for noteworthy changes
|
|
- **This template repo:** keep `docs/changelog.d/` empty except for `.gitkeep`
|
|
5. **Never commit secrets**
|
|
|
|
## Change Classification
|
|
|
|
Before starting work, classify the change:
|
|
|
|
| Class | Name | When to use | Key trait |
|
|
|-------|------|-------------|-----------|
|
|
| **C0** | Quick Fix | Small, low-risk, fix-forward safe | Direct to main, no PR |
|
|
| **C1** | Human Review | Moderate complexity or risk | Feature branch + PR, docs-first |
|
|
| **C2** | Mikado Chain | Multi-phase, multi-session, high complexity | Mikado Branch Invariant |
|
|
|
|
**C0** — commit directly to main. No branch or PR needed. Fix forward if problems arise.
|
|
|
|
**C1** — in generated repos, use a feature branch with an early PR. In this template source repo, prefer direct cleanups unless the user explicitly wants branch-based review. Search related docs first, write documentation changes before code. Upgrade to C2 if complexity spirals.
|
|
|
|
**C2** — branch `mikado/<chain-stem>` governed by the Mikado Branch Invariant: all card commits first, then code progress, then card closures. Commits use `C2(<chain>): plan/impl/close/finalize` convention. Reset the branch when new prerequisites are discovered. Resume with `mise run docs-mikado --resume`.
|
|
|
|
See [[agent-change-process]] for the full methodology.
|
|
|
|
## Project Structure
|
|
|
|
A Cargo workspace (`Cargo.toml` at root) plus the Neovim plugin and repo tooling. Backend feature-complete (all three runtime modes + sync + OIDC); three daily-driver surfaces — `heph` (CLI), `heph-tui` (agenda/triage), `heph.nvim` (context/KB).
|
|
|
|
```
|
|
./Cargo.toml # workspace manifest (shared deps + members)
|
|
./crates/heph-core/ # core lib: data model, Store trait + SQLite store, extraction,
|
|
# recurrence, "what is next?" ranking, op-log/HLC/CRDT (yrs) sync
|
|
./crates/hephd/ # daemon: local/server/client modes — unix-socket RPC + HTTP sync/rpc + OIDC auth
|
|
./crates/heph/ # CLI (thin client of hephd): next/task/doc/get/export/search/journal/auth
|
|
./heph.nvim/ # Neovim plugin: primary surface; replaces obsidian.nvim (Lua + headless e2e)
|
|
./docs/ # Diataxis docs (incl. [[design]] + [[v1-prototype-tech-spec]]), Quartz config, release content
|
|
./docs/changelog.d/ # towncrier fragments for noteworthy changes
|
|
./.dagger/ # Dagger module (src/hephaestus_ci/) backing docs builds and releases
|
|
./.forgejo/workflows/ # build + release workflows
|
|
./.forgejo/scripts/ # per-project build/release hooks (build runs cargo test once present)
|
|
./mise-tasks/ # repo automation via `mise run`
|
|
```
|
|
|
|
**TDD:** failing test first → implement to green → commit on green. `heph-core` is clock-injected (no ambient wall-clock; time is passed in). Spec: [[v1-prototype-tech-spec]] (frozen v1 build record); rationale: [[design]] (living). Other doc paths via `mise run ai-docs`; `[[like-this]]` wiki-links refer to `docs/` cards.
|
|
|
|
## Working state (heph self-hosts its roadmap)
|
|
|
|
Outstanding/future heph work lives as tasks in the **`Hephaestus` project** — inspect it before planning:
|
|
|
|
- `heph list --project Hephaestus` — outstanding tasks (human-readable)
|
|
- `heph list --project Hephaestus --json` — JSON rows: `node_id`, `canonical_context_id`, attention/state/do_date/recurrence (for scripting/agents)
|
|
- `heph task "<title>" --project Hephaestus -a blue` — capture new work (blue = on-deck backlog)
|
|
|
|
Triage in `heph-tui` (*On Deck* view). Add a task for new work — don't reopen the frozen §14 tracker.
|