Skip to content

Add tiered Claude Code permission presets to prism init#6

Merged
EiffL merged 1 commit into
mainfrom
feat/permission-tiers
Mar 1, 2026
Merged

Add tiered Claude Code permission presets to prism init#6
EiffL merged 1 commit into
mainfrom
feat/permission-tiers

Conversation

@lhparker1
Copy link
Copy Markdown
Member

Summary

  • Adds a --permissions flag to prism init with four tiers: yolo (everything auto-allowed), recommended (Prism workflow auto-allowed), minimal (read-only), and custom (recommended + edit yourself)
  • First-time users without a saved default are prompted interactively to pick a tier and optionally save it to ~/.prism/config.yaml
  • Subsequent inits silently use the saved default; --permissions flag overrides without changing the saved default
  • Hooks remain identical across all tiers

Test plan

  • Dry-run verified all 4 tiers produce correct settings.json permissions
  • Interactive prompt flow tested (pick tier, save default)
  • Saved-default flow tested (silent reuse on subsequent init)
  • Flag override tested (overrides saved default without changing it)
  • Hooks present in all tiers confirmed
  • Existing test suite passes with --permissions recommended added to all init invocations

🤖 Generated with Claude Code

Users can now choose how permissive Claude Code is via `--permissions`
(yolo|recommended|minimal|custom). First-time users are prompted
interactively and can save their choice as a default in
~/.prism/config.yaml for future projects.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Member

@EiffL EiffL left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@EiffL EiffL merged commit 60d393e into main Mar 1, 2026
4 of 5 checks passed
EiffL added a commit that referenced this pull request Mar 1, 2026
PR #7 was merged into feat/permission-tiers after that branch had
already been merged to main as PR #6, so its changes were lost.

Apply the missing changes:
- Update CLAUDE.md template: skill commands table, structured
  success_criteria, conditional decisions (when), decision
  constraints docs, artifact evidence format
- Update root CLAUDE.md: skill branding, sites path

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
cailmdaley added a commit that referenced this pull request May 13, 2026
…between

Restructures INTERVIEW to run the paper-extraction substrate inline,
between two question beats. This way every interview question after the
paper identifier is grounded in the actual paper — scope shown as a
menu of real figures/tables, fidelity intent referencing actual headline
numbers, code repo confirmed against what data-availability /
acknowledgements surface, conventions/warnings proactively proposed
from the paper, "prior notes" reframed as "external context outside
paper + code."

The paper identifier is asked in prose (not AskUserQuestion — the
answer is inherently free-form: arXiv ID, DOI, or PDF path).
AskUserQuestion lives entirely in Beat 2, after paper substrate is on
disk.

ACQUIRE becomes thin: just /lc-from-code scan-only against the cloned
reference repo, plus code-status.yaml. Paper substrate is INTERVIEW's
deliverable (committed as part of INTERVIEW's first commit, alongside
constitution.md + CLAUDE.md). No-public-repo case is one step: write
code-status.yaml found=false and launch.

Knock-on doc edits:
- SKILL.md Phases table: paper substrate moves to phase 0 outputs.
- SKILL.md "The two pre-loop bookends": INTERVIEW now describes the
  two-beat shape; ACQUIRE drops the "two parallel sub-skill" framing.
- SKILL.md Workdir-as-state: INTERVIEW row now includes paper substrate;
  ACQUIRE row simplified.
- SKILL.md Resuming: split the substrate-incomplete recovery into
  paper-side (re-run /paper-extraction) and code-side (re-run
  /lc-from-code) cases.
- references/acquire.md: full rewrite — drops paper-extraction step,
  becomes code-substrate-only with a "no-public-repo" branch.
- references/architect.md: survey signal reworded to reference paper
  substrate (from INTERVIEW) and code substrate (from ACQUIRE)
  separately.

Surfaced via Cail's dogfood run of /lc-from-paper on arXiv:2604.03227.
Friction entries #2 (AskUserQuestion is wrong shape for free-form paper
ID), #3 (INTERVIEW should ground questions in actual paper), and #6
(prior-notes framing doesn't match either scientist persona) all
addressed here.

Co-Authored-By: Claude Sonnet 4.7 (1M context) <noreply@anthropic.com>
cailmdaley added a commit that referenced this pull request May 13, 2026
Cail's call after walking through dogfood friction #3: instead of two
pre-loop phases (INTERVIEW asks → ACQUIRE clones + scans), one ORIENT
phase that runs the right thing at the right moment.

ORIENT runs as one phase with seven stages, all in the user's main
session:

1. Ask for the paper (prose).
2. /paper-extraction inline; read the substrate.
3. Interview the user (AskUserQuestion rounds, grounded in paper).
4. Clone repo + /lc-from-code scan-only (skip if no public code).
5. Optional follow-up questions if the code-index surfaced anything.
6. Draft constitution.md + CLAUDE.md (now informed by paper AND code).
7. User review → refine → single commit (constitution + CLAUDE +
   paper substrate + code substrate) → launch loop.

The key shape: knowing the code BEFORE writing the constitution lets
the constitution's Scope and sub-analysis decomposition lean on the
actual pipeline. Previously the constitution drafted from paper-only
context, then ACQUIRE added the code substrate after. Cleaner this way.

Knock-on edits:
- SKILL.md: phases table goes 0 ORIENT → 7 REVIEW (eight phases, was
  nine). "Two pre-loop bookends" section collapses into "The pre-loop
  bookend: ORIENT". Workdir-as-state's INTERVIEW + ACQUIRE rows merge.
  Resuming + anti-patterns updated.
- references/orient.md: new file (content carried from interview.md
  via git mv in the prior commit, fully rewritten here with the seven
  stages, Stage 4's code-substrate work folded in from the deleted
  acquire.md, Cail's "Author / worked closely with authors" replacing
  the prior "Coauthor / ..." option in familiarity).
- references/architect.md: survey signal reworded for ORIENT.
- references/review.md: "first being INTERVIEW" → "first being ORIENT".
- templates/constitution.md: "INTERVIEW" / "ACQUIRE" → "ORIENT".

Friction #3 closes cleanly with this; #2 (prose paper-identifier) and
#6 (reframed external-context question) were already folded into the
prior commit and carry forward into the new orient.md.

Co-Authored-By: Claude Sonnet 4.7 (1M context) <noreply@anthropic.com>
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.

2 participants