Skip to content

feat: keyless /pandavas skill mode over a deterministic verb spine - #2

Merged
MANVENDRA-github merged 1 commit into
mainfrom
feat/skill-mode
Jun 27, 2026
Merged

feat: keyless /pandavas skill mode over a deterministic verb spine#2
MANVENDRA-github merged 1 commit into
mainfrom
feat/skill-mode

Conversation

@MANVENDRA-github

Copy link
Copy Markdown
Owner

What

Adds a keyless /pandavas skill mode alongside the existing standalone runner. The host harness's model (Claude Code / Cursor) plays the LLM agents (research/worker/judge); LLM-free CLI verbs own every deterministic gate. Two modes share one deterministic core.

Why

Run pandavas with no API key, as a one-line /pandavas . <task> from any repo's terminal, without giving up the owned orchestration.

How

  • src/pandavas/spine.py - verbs: baseline, resolve-brief, run-tests, judge-gate, decide, restore, commit, diff, apply-edits. Reuses run's logic (nodes.make_bhima_test/_better/_restore_snapshot); state in a gitignored .pandavas/; ASCII JSON; exit codes 0/10/20/30.
  • cli.py registers + dispatches the verbs (the run path is untouched).
  • Packaging for Claude Code + Cursor: commands/, skills/, agents/ (fresh-context judge subagent), scripts/install-*, plugin manifests.
  • Docs: docs/SKILL_MODE.md, README section, CLAUDE.md note.

Honest caveat

Skill mode can't structurally force the gates the way run does - the model must call the verbs and obey their exit codes. python -m pandavas run remains the hard-determinism path. (Cursor's judge degrades to self-review; Claude Code uses a real subagent.)

Tests

Strictly additive. python -m pytest -> 120 passed, 1 skipped (+27 new: test_spine.py per-verb, test_skill_e2e.py keyless end-to-end).

A second way to run pandavas, with no API key: a /pandavas command for Claude
Code and Cursor where the host harness's model plays the LLM agents (research/
worker/judge) while LLM-free CLI verbs own every deterministic gate. Strictly
additive - the standalone `python -m pandavas run` path and the six
deterministic modules are unchanged.

- src/pandavas/spine.py: baseline, resolve-brief, run-tests, judge-gate,
  decide, restore, commit, diff, apply-edits. Reuses run's logic via
  nodes.make_bhima_test/_better/_restore_snapshot; state in a gitignored
  .pandavas/ dir; ASCII JSON stdout; distinct exit codes (0/10/20/30).
- cli.py: register + dispatch the verb subparsers (run path untouched).
- retrieval.py + .gitignore: ignore the .pandavas/ working dir.
- Packaging: commands/, skills/, agents/ (fresh-context judge subagent),
  scripts/install-{claude,cursor}.{sh,ps1}, plugin manifests, .gitattributes.
- docs/SKILL_MODE.md, README skill-mode section, CLAUDE.md scope note.
- tests: test_spine.py (per-verb) + test_skill_e2e.py (keyless e2e).
  Suite green: 120 passed, 1 skipped.
@MANVENDRA-github
MANVENDRA-github merged commit b44d9ca into main Jun 27, 2026
0 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant