fix(icp-cli, caffeine-app): carve out the one real dfx exception - #330
Open
raymondk wants to merge 1 commit into
Open
fix(icp-cli, caffeine-app): carve out the one real dfx exception#330raymondk wants to merge 1 commit into
raymondk wants to merge 1 commit into
Conversation
icp-cli:14 and pitfall 1 stated the no-dfx rule absolutely ("Never use
`dfx`", "All commands have `icp` equivalents"), which sns-launch then
contradicts by requiring `dfx sns`.
sns-launch is right. Checked the installed CLI (icp 1.2.0) -- there is no
sns, nns, governance or proposal subcommand:
build, canister, cycles, deploy, environment, identity, network, new,
project, settings, sync, token, help
So "all commands have icp equivalents" is false, and SNS governance is a
genuine gap rather than a skill error. Both places now name the exception and
point at sns-launch; the anti-dfx rule is unchanged for build, deploy,
canister, identity and cycles work.
caffeine-app's "no dfx in the workflow" is also accurate as far as it goes --
you never invoke dfx -- but the frontend template branches on DFX_NETWORK,
exposes DFX_/CANISTER_ env prefixes, and proxies /api to 127.0.0.1:4943,
which is dfx's replica port (icp-cli uses 8000). Added a note where the
config appears: these are inherited scaffold naming conventions, not a dfx
dependency, and the proxy only does anything if something serves on 4943.
Deliberately did not call the 4943 target wrong -- verifying what Caffeine's
dev server actually serves needs an account I do not have.
Regression checks on the case that covers the rule I softened:
icp-cli case 10 "Adversarial: dfx commands" -- 4/4, unchanged.
Closes #282
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NEm1Tbkypzi8SuXhrMfBek
Skill Validation ReportProject Checks |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #282
sns-launch is right; the absolutist claim is wrong
icp-cli:14said "Never usedfx— always useicp", and pitfall 1 said "All commands haveicpequivalents".sns-launchthen requiresdfx sns. I checked the installed CLI rather than assuming which side was wrong —icp 1.2.0top-level subcommands:No
sns,nns,governanceorproposal. So "all commands haveicpequivalents" is false, andsns-launch's use ofdfx snsis a genuine gap inicp, not a skill error.Both places now name the exception and point at
sns-launch. The anti-dfx rule is untouched for build, deploy, canister, identity and cycles work — which is what it's actually for.caffeine-app: the claim is true, the template needed context
"There is no
dfxin the workflow" is accurate in the sense that matters — you never invoke it. Butreferences/frontend-template.mdbranches onDFX_NETWORK, exposesDFX_/CANISTER_env prefixes, and proxies/apito127.0.0.1:4943, which is dfx's replica port (icp-cli uses 8000 —icp-cli/references/dfx-migration.mdeven says to search for4943and expect zero matches, though that guidance is for icp-cli projects, not Caffeine ones, so it isn't strictly a contradiction).Added a note where the config appears: these are inherited scaffold naming conventions, not a dfx dependency, and the proxy only does something if a replica is actually serving on 4943.
What I deliberately did not do: call the
4943target wrong. Verifying what Caffeine's own dev server serves on needs a caffeine.ai account I don't have, so asserting it would be a guess dressed as a fix.Regression check
The rule I softened is exactly what one eval case covers, so I re-ran it:
The model still corrects
dfx deploy --network ic→icp deploy -e icand does not endorse dfx. The carve-out didn't leak into deploy advice.Pre-existing eval failure, not from this PR
While checking, I found icp-cli case 3 "Migrate from dfx" scores 5/6 — and I verified it scores 5/6 on unmodified
maintoo, so it is not a regression from this change. The failing behavior:The model is following the skill:
icp-cli:105recommends@dfinity/static-site@v0.3.3as the frontend recipe. The eval expectation looks stale rather than the skill being wrong — it probably should acceptstatic-site. I've left it alone since it's unrelated to this issue and changing an eval's expectations is a judgement call for a maintainer, but it's worth a follow-up.npm run validatepasses: 26 skills validated, all passed.🤖 Generated with Claude Code
https://claude.ai/code/session_01NEm1Tbkypzi8SuXhrMfBek