Repository navigation
state ~/.devin as the only pstack-models source - #11
Conversation
setup-pstack step 2 ignores other tools' rule files, even when injected, and flags existing slugs `devin models list` does not report. poteto-mode points missing write profiles at the setup-pstack step 6 block. Co-authored-by: Kaitian Xie <caelaxie@users.noreply.github.com>
|
harness blocker. devin cli is installed ( local ci validator (the plugin check in |
caelaxie
left a comment
There was a problem hiding this comment.
changes requested (posting as COMMENT since author and reviewer are the same account).
- minimum changes: the
~/.devinonly-source-of-truth sentences are a fair harness adaptation (#9: devin's compat layer injects~/.cursor/rules/*.mdcas always-on, cursor upstream can't hit this). keeping removal out is right. the poteto-mode swap to "copy thepstack-M.mdblock in step 6 exactly" is devin-only text replacing devin-only text, fine, andRefs #7is right. - the step 2 re-validation sentences are not harness-specific and duplicate what upstream already does: step 3(c) marks "any real slug not in the detected set as needing a choice" and step 4 refuses to write one. that's upstream text, kept verbatim in this port. drop them (see line comment) and switch
Closes #8toRefs #8, with a note on #8 that 3(c)/4 already cover re-runs. - harness proof: missing. the comment shows
devin auth statusnot logged in, so nodevin plugins install/devin plugins list, and setup-pstack / poteto-mode were not exercised. need that before merge. Validate plugin was still running at review time.
non-blocking, separate pr: upstream setup-pstack now has an "offer a formal verification skill" step after the verification-skill offer; the port's setup-pstack ends at step 8 without it. check whether that's in an upstream release the port already claims.
| ### 2. Load current state | ||
|
|
||
| The default role-to-model mapping is the rule shape shown in step 5 below. If `~/.devin/rules/pstack-models.md` already exists, read it and treat its `# budget` line and its role values as the current choices. Otherwise start from those defaults. A line whose role is not in step 5, such as `how critics`, is from a retired role. Drop it. | ||
| The default role-to-model mapping is the rule shape shown in step 5 below. `~/.devin/rules/pstack-models.md` is the only source of truth for current pstack model state. pstack-models config found under other tool dirs (`~/.cursor/rules/`, `~/.claude/`, project `.cursor/`, etc.), even if injected into context, is not current state. If `~/.devin/rules/pstack-models.md` already exists, read it and treat its `# budget` line and its role values as the current choices. Otherwise start from those defaults. On a re-run, validate each existing role value against the slugs `devin models list` reported in step 1. A real slug `devin models list` doesn't report counts as needing a choice, the same check step 4 applies to new picks. `inherit-parent` and `auto` always pass. A line whose role is not in step 5, such as `how critics`, is from a retired role. Drop it. |
There was a problem hiding this comment.
drop "On a re-run, validate each existing role value ... inherit-parent and auto always pass." upstream step 2 has no such check because 3(c) already marks undetected real slugs as needing a choice and step 4 blocks writing them; both are in this file unchanged. adding it here is divergence for a case upstream already handles. keep the ~/.devin source-of-truth sentences.
upstream step 3(c) and step 4 already flag and refuse undetected slugs on re-run. keep the ~/.devin source-of-truth sentences. Co-authored-by: Kaitian Xie <caelaxie@users.noreply.github.com>
harness proofReal Devin CLI on a local box (no cloud agent, no git clone). PR head
0. clean slate1–2. install + list
Content check: sha256 prefixes of the installed files vs raw.githubusercontent at 3. setup-pstack (describe-only)Project allowlist used for both runs. Writes are denied, and I did not use setup-pstack ran with the first four This exercises the PR's change directly. The box has a real 4. poteto-modeThe first try ran with the four-entry allowlist (no The rerun used the full read-only allowlist above: No code was changed and no secrets appear in this comment. |
caelaxie
left a comment
There was a problem hiding this comment.
approved at e61d7d9 (posting as COMMENT since author and reviewer are the same account).
- minimum changes: e61d7d9 removes the step 2 re-validation sentences. the diff is now two lines: the
~/.devinonly-source-of-truth sentences in setup-pstack step 2 (#9, a devin harness adaptation) and the poteto-mode pointer to the step 6pstack-M.mdblock (#7). everything else in step 2, 3(c), and 4 matches upstreamf9be7aaword for word. - parity: this PR touches no version files.
0.15.26in the proof is just the base it was cut from. #10 is now merged (c86c059, 0.15.27). its hunks are setup-pstack step 9, appended at the end, plus docs and manifests. none of them overlap this PR's setup-pstack step 2 line or its poteto-mode line. so the squash lands cleanly on top, main stays at0.15.27, and nothing regresses. - harness proof (#11 (comment)): accepted. it starts from a clean slate with both earlier plugins removed and the cache empty. a wrapper's
requiredPluginspins the full head shae61d7d9f…, and devin fetched pstack from github into its plugin cache, so this is a real install, not a symlink or subset.devin plugins listshowspstack v0.15.26. the sha256 of the installed setup-pstack and poteto-modeSKILL.mdmatchese61d7d9and differs frommain. authenticated/pstack:setup-pstackran with a real~/.cursor/rules/pstack-models.mdcinjected into context and still treated defaults as current state, which exercises exactly this change./pstack:poteto-modeloaded and answered. Refs #8(the re-check is dropped, and upstream 3(c)/4 cover re-runs),Closes #9(the required ask is fully met, and stray removal is declined with a reason),Refs #7. all correct.
CI Validate plugin is green on e61d7d9, and the head has not moved past the proof sha. squash-merging pinned to e61d7d9f20ac52efaf65dd7e60725870c7e7963b.
setup-pstack step 2 now says
~/.devin/rules/pstack-models.mdis the only source of truth for current pstack model state. pstack-models config under other tool dirs (~/.cursor/rules/,~/.claude/, project.cursor/, etc.) is not current state, even if injected into context.left the optional "offer to remove stray config" out. afe207a dropped cross-tool detection on purpose: the text it removed treated other tools' rule files as the current choices and then deleted them. putting removal back is not a one-line, clearly-scoped addition. it would mutate another tool's rule file.
poteto-mode's Subagents section now says to copy the
pstack-M.mdblock in/pstack:setup-pstackstep 6 exactly, so a missing write profile is not hand-rolled. asks 1 and 3 are devin-cli, not this plugin.Refs #8
Closes #9
Refs #7