feat(v0.6): AGENTS.md seed + CLAUDE.md shim + handoff + context-archive scaffold

New workspaces get:
  - AGENTS.md (always): canonical agent instructions — handoff workflow,
    notes-archive convention (~300-500 line trigger), cross-workspace
    discovery, do-not-touch warnings. Project variant adds workspace-
    structure and git-conventions sections.
  - CLAUDE.md shim (claude type only per v0.6 spec §6 — opencode shim
    deferred until its instruction-file convention is verified).
  - handoff.md: minimal current-state template the agent updates per
    session.
  - context/notes-archive/.gitkeep: directory pinned for git tracking,
    ready for the agent to populate per the archive convention.

seed.ClaudeMD and seed.ClaudeMDProject removed — no callers remain.
Existing workspaces are NOT modified; this is strictly a ctask-new code
path. The seed-wins overlay rule still applies — a user seed dir's
AGENTS.md/CLAUDE.md overrides the built-in.
This commit is contained in:
2026-05-15 11:15:16 -04:00
parent a61f900c86
commit 0c6ed0c0cf
6 changed files with 322 additions and 268 deletions
-125
View File
@@ -2,131 +2,6 @@ package seed
import "fmt"
// ClaudeMD returns the built-in default CLAUDE.md content for a task workspace.
// Parameters are accepted for API compatibility but are not interpolated in v0.3.
func ClaudeMD(slug, category, workspacePath string) string {
_ = slug
_ = category
_ = workspacePath
return `# Workspace Guidelines
This is a ctask workspace. Prefer operating inside this directory unless explicitly instructed otherwise.
## File Placement
- Source code and scripts -> workspace root or ` + "`src/`" + `
- Documentation, summaries, reports -> ` + "`docs/`" + `
- Deliverables and exports -> ` + "`output/`" + `
- Reference material and imported files -> ` + "`context/`" + `
- Do not place non-code outputs (docs, summaries, exports) in the workspace root
## Conventions
- Do not install global packages or modify system files unless asked
- Record important assumptions and actions in notes.md
- Keep the workspace root clean -- use subdirectories for organization
## Cross-Workspace Context
Related work may exist in other ctask workspaces. For project continuation,
migration, debugging, or building on prior work, inspect related workspaces
before making changes.
Available commands:
ctask list --all discover all workspaces, including archived
ctask info <workspace> view metadata and status of any workspace
ctask notes <workspace> read another workspace's notes.md
ctask path <workspace> get the filesystem path to inspect files directly
Treat other workspaces as read-only unless the user explicitly asks you to
modify them.
## Session Handoff
Before ending a session, append a brief summary to notes.md with:
- What was accomplished
- Key decisions made
- Open follow-ups or unfinished work
- How to continue from here
Keep it concise -- a few bullet points is enough.
`
}
// ClaudeMDProject returns the built-in default CLAUDE.md content for a project workspace.
func ClaudeMDProject() string {
return `# Project Workspace Guidelines
This is a ctask project workspace -- a long-lived working environment, not a disposable task.
## Workspace Structure
This is a ctask project workspace. The workspace root contains ctask management
files. Your project code lives in the project subdirectory.
- Workspace root: ctask metadata, session logs, notes, reference material
- Project subdirectory: source code, project CLAUDE.md, project configuration
- ` + "`context/`" + `: reference material and imported specs (workspace level)
- ` + "`output/`" + `: deliverables and exports (workspace level)
- ` + "`logs/`" + `: session logs (managed by ctask)
When working on project code, operate inside the project subdirectory.
Place project-specific CLAUDE.md, documentation, and configuration there.
## File Placement
- Source code -> ` + "`src/`" + ` (inside the project subdirectory)
- Documentation -> ` + "`docs/`" + ` (workspace level for general notes, project subdir for project docs)
- Deliverables and exports -> ` + "`output/`" + ` (workspace level)
- Reference material -> ` + "`context/`" + ` (workspace level)
- Tests -> ` + "`tests/`" + ` (inside the project subdirectory)
- Configuration files -> inside the project subdirectory
- Do not place non-code outputs in the workspace root
## Conventions
- This project uses git. Commit meaningful changes with clear messages.
- Do not install global packages or modify system files unless asked.
- Record important assumptions and actions in notes.md (workspace level).
- Keep the workspace root clean.
## Git
This workspace uses a single git repository initialized at the workspace root.
The project subdirectory and all its contents are tracked by this root repo.
Do not initialize additional git repositories inside the project subdirectory
or any other subdirectory. If you need to check git status or make commits,
the repo root is the workspace root.
## Cross-Workspace Context
Related work may exist in other ctask workspaces. For project continuation,
migration, debugging, or building on prior work, inspect related workspaces
before making changes.
Available commands:
ctask list --all discover all workspaces, including archived
ctask info <workspace> view metadata and status of any workspace
ctask notes <workspace> read another workspace's notes.md
ctask path <workspace> get the filesystem path to inspect files directly
Treat other workspaces as read-only unless the user explicitly asks you to
modify them.
## Session Handoff
Before ending a session, append a brief summary to notes.md with:
- What was accomplished
- Key decisions made
- Open follow-ups or unfinished work
- How to continue from here
`
}
// NotesMD returns the skeleton notes.md content.
func NotesMD(title string) string {
return fmt.Sprintf(`# %s