Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
807ed61
refactor(paths): introduce canonical path resolver and split caseRoot
nicknisi May 16, 2026
c42f6ad
feat(cli): port agent-facing scripts to case subcommands
nicknisi May 16, 2026
a7d8681
feat(data-dir): move mutable state to ~/.config/case/ + add `case init`
nicknisi May 16, 2026
50c0297
feat(agents): replace hard-coded paths with case verbs and inline docs
nicknisi May 16, 2026
76c3f7c
Fix Devin Review bugs: router back-compat, deprecation warning, task …
devin-ai-integration[bot] May 16, 2026
72729c9
feat(lint): add regex-based path check for .sh/.md files
nicknisi May 16, 2026
7bdedba
fix(build): make bun build --compile work via PI_PACKAGE_DIR
nicknisi May 16, 2026
4dc6c5e
fix(pipeline): resolve 20 pre-existing DAG executor test failures
nicknisi May 16, 2026
e8d0289
chore: add docs/ideation/ to .gitignore and run formatter
nicknisi May 16, 2026
59d5601
refactor(pipeline): extract approve loop to fix no-unreachable warnings
nicknisi May 16, 2026
72d12b6
chore: add bun build artifacts to gitignore
nicknisi May 16, 2026
fcc149c
docs: rename binary to ca, update agent prompts and README
nicknisi May 16, 2026
64e5b8d
fix: update deprecation message to reference ca init, not case init
nicknisi May 16, 2026
fe71333
fix(serve): keep server process alive after Bun.serve starts
nicknisi May 16, 2026
51dd6c0
chore: remove speculative server stack and dead code
nicknisi May 16, 2026
d737839
refactor(commands): rewrite shell script shims as native TypeScript
nicknisi May 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 12 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,23 @@
.case-manual-tested
.case-reviewed

# Active tasks (ephemeral per-run state, moved to tasks/done/ after merge)
# Phase 3: state moved to ~/.config/case/. These rules cover both the legacy
# in-repo paths (during the transition window) and any state accidentally written
# under the repo root.
tasks/active/

# Proposed amendments (staged for human review, not committed until approved)
tasks/done/
docs/learnings/
docs/proposed-amendments/*.md
!docs/proposed-amendments/.gitkeep

# Run log (append-only, machine-generated)
docs/run-log.jsonl
docs/agent-versions/

# Ideation artifacts (generated HTML/MD specs)
docs/ideation/

# Build artifacts
node_modules/
dist/

# bun artifacts
*.bun-build
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Humans steer. Agents execute. When agents struggle, fix the harness.
Run the session-start script to gather context before doing anything else:

```bash
SESSION=$(bash /Users/nicknisi/Developer/case/scripts/session-start.sh <target-repo-path> --task <task.json>)
SESSION=$(case session <target-repo-path> --task <task.json>)
echo "$SESSION"
```

Expand Down
34 changes: 17 additions & 17 deletions CONTEXT.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,23 @@ Canonical vocabulary for the case pipeline. Every term used in code, specs, and

## Terms

| Term | Definition | Rejected Alternatives |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| **task** | A unit of agent work dispatched by the pipeline. Has a `taskId`, status, and associated event log. | `job`, `run` (too generic) |
| **phase** | A named pipeline stage that produces one `AgentResult`. One of: implement, verify, review, approve, close, retrospective. | `step` (too generic), `stage` (ambiguous with CI) |
| **node** | A DAG vertex representing one phase execution at a specific revision cycle. E.g., `implement_0`, `verify_1`. Introduced in Phase 3. | `vertex` (too academic) |
| **status** | The lifecycle position of a task, derived from pipeline state. One of: active, implementing, verifying, reviewing, evaluating, closing, pr-opened, merged. | `state` (reserved for `PipelineState`, the full reconstructible object) |
| **state** | The full reconstructible pipeline state object (`PipelineState`), produced by `reduceEvents()`. | `snapshot` (used in mill for a different concept) |
| **event** | An immutable past-tense fact appended to the event log. Events are the source of truth. | `action`, `command` (those are imperative; events are facts) |
| **projection** | A derived view computed from `PipelineState`. Examples: `TaskJson`, `RunMetrics`, evidence markers. | `view`, `derivation` |
| **runtime** | The `CaseAgentRuntime` interface that abstracts agent spawn/cancel/tool-creation. | `provider` (that's the backing service, not the interface) |
| **adapter** | A concrete implementation of `CaseAgentRuntime` for a specific provider. E.g., `PiRuntimeAdapter`. | `driver`, `connector` |
| **evaluator** | Collective term for verifier and reviewer — the two phases that assess implementation quality. | `assessor`, `checker` |
| **marker** | A file written to `.case/<task-slug>/` as evidence of a completed phase. E.g., `tested`, `reviewed`. | `flag`, `sentinel` |
| **evidence** | Proof that a phase completed successfully. Includes marker files, SHA-256 hashed test output, screenshots. | `artifact` (too broad) |
| **ast-grep rule** | A YAML file defining a structural code pattern to match or ban. Processed by ast-grep against TypeScript ASTs. Lives in `ast-rules/`. | `lint rule` (too generic — we also have oxlint) |
| **target rule** | An ast-grep rule enforcing golden principles in target repos. Run by the implementer before committing. Lives in `ast-rules/target/`. | `repo rule`, `external rule` |
| **self-enforcement rule** | An ast-grep rule enforcing case's own codebase invariants. Run in CI and pre-commit. Lives in `ast-rules/self/`. | `internal rule`, `meta rule` |
| Term | Definition | Rejected Alternatives |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| **task** | A unit of agent work dispatched by the pipeline. Has a `taskId`, status, and associated event log. | `job`, `run` (too generic) |
| **phase** | A named pipeline stage that produces one `AgentResult`. One of: implement, verify, review, approve, close, retrospective. | `step` (too generic), `stage` (ambiguous with CI) |
| **node** | A DAG vertex representing one phase execution at a specific revision cycle. E.g., `implement_0`, `verify_1`. Introduced in Phase 3. | `vertex` (too academic) |
| **status** | The lifecycle position of a task, derived from pipeline state. One of: active, implementing, verifying, reviewing, evaluating, closing, pr-opened, merged. | `state` (reserved for `PipelineState`, the full reconstructible object) |
| **state** | The full reconstructible pipeline state object (`PipelineState`), produced by `reduceEvents()`. | `snapshot` (used in mill for a different concept) |
| **event** | An immutable past-tense fact appended to the event log. Events are the source of truth. | `action`, `command` (those are imperative; events are facts) |
| **projection** | A derived view computed from `PipelineState`. Examples: `TaskJson`, `RunMetrics`, evidence markers. | `view`, `derivation` |
| **runtime** | The `CaseAgentRuntime` interface that abstracts agent spawn/cancel/tool-creation. | `provider` (that's the backing service, not the interface) |
| **adapter** | A concrete implementation of `CaseAgentRuntime` for a specific provider. E.g., `PiRuntimeAdapter`. | `driver`, `connector` |
| **evaluator** | Collective term for verifier and reviewer — the two phases that assess implementation quality. | `assessor`, `checker` |
| **marker** | A file written to `.case/<task-slug>/` as evidence of a completed phase. E.g., `tested`, `reviewed`. | `flag`, `sentinel` |
| **evidence** | Proof that a phase completed successfully. Includes marker files, SHA-256 hashed test output, screenshots. | `artifact` (too broad) |
| **ast-grep rule** | A YAML file defining a structural code pattern to match or ban. Processed by ast-grep against TypeScript ASTs. Lives in `ast-rules/`. | `lint rule` (too generic — we also have oxlint) |
| **target rule** | An ast-grep rule enforcing golden principles in target repos. Run by the implementer before committing. Lives in `ast-rules/target/`. | `repo rule`, `external rule` |
| **self-enforcement rule** | An ast-grep rule enforcing case's own codebase invariants. Run in CI and pre-commit. Lives in `ast-rules/self/`. | `internal rule`, `meta rule` |

## Decisions Log

Expand Down
Loading