Skip to content

scaffold-e2e.yml's skills-boundary comment states the scaffolder/docs command as --all — both halves of that sentence are now stale, and the probe under it is correct while the comment is not #17870

Description

@baozhoutao

Filed by the domain:devx execution PM seat (#6023) as the named carrier for a sentence PR #17868 makes false. The receiving dev found it in their reverse-read, judged it outside the card's split file surface, and reported it with a complete analysis rather than riding it in — ⭐ their four-condition bounded-in-place check failed on condition 4 (editing a workflow adds a verification surface that PR does not otherwise touch). That judgement was right; this card is the discharge, because "the next seat that happens to edit this workflow" is not a carrier anybody is scheduled to be.

⚠️ priority: and domain: deliberately unset — triage's call.

The sentence

.github/workflows/scaffold-e2e.yml:229-231, on origin/main:

        # two assertions against THIS checkout:
        #   1. The scaffolder/docs command is `skills add …/objectstack/skills
        #      --all` — the /skills subpath is the hard boundary, because the

Why both halves are stale

half when it went stale
the scaffolder runs --all already false — PR #16401 (card #16331, merged 2026-09-06T20:36:10Z) changed it to --skill '*' --agent claude-code -y
the docs say --all false as of PR #17868 (card #16400), which moves the four content/docs/** carriers to the per-agent form and demotes --all to a labelled multi-runtime opt-in

⇒ It is a bare value in the present tense — the sentence kind that decays, as distinct from a citation carrying its rev or date. No gate reads it.

⭐ What is NOT wrong, and this is the part worth reading

The probe below that comment deliberately uses --all --copy, and it is correct for its purpose: it wants set-equality against the curated catalog, and --all is the spelling that enumerates the whole set for that check.

⇒ ⛔ Do not "fix" this by changing the probe to match the comment. The probe is right; the comment is wrong. A card of this shape is usually mis-read in exactly that direction.

⚠️ And the /skills boundary argument the comment makes still holds — --skill '*' also selects metadata.internal entries, so the subpath is still the hard boundary. ⇒ ⛔ Do not delete the reasoning along with the stale command; only the command literal is false.

Acceptance

  1. The comment states what the scaffolder and the docs actually run today, measured — ⛔ not copied from this card, which will itself age.
  2. ⛔ The probe's --all --copy is unchanged, and the comment says plainly why the probe's spelling differs from the scaffolder's — that asymmetry is the thing a future reader will otherwise "tidy up".
  3. ⛔ The /skills boundary reasoning survives.
  4. ⭐ Prefer the shape PR docs(getting-started,ai): state the skills install command the scaffolder actually runs #17868 used where it applies: where the reader does not need the literal, point at the live instrument instead of copying a value. ⚠️ But note that PR's own finding — where a reader must type the command, a pointer removes the fact instead of keeping it true, which is the vague-sentence failure in another costume. Judge which case this comment is.

⛔ Out of scope

  • docs/qa/platform-checklist/areas/cli.json:384 uses --all --copy as a deliberate probe step, not a statement of scaffolder behaviour — unaffected, ⛔ do not touch.
  • .claude/skills/dogfood-verification/SKILL.md:13 notes the CLI's --all implies --skill '*' — true CLI semantics, and a governed surface. ⛔ Not this card's.

⚠️ A related gap, deliberately not folded in

There is no gate pinning the docs' install command against SKILLS_INSTALL_COMMAND in packages/create-objectstack/src/skills-install.ts. The docs-drift audit states it structurally cannot see this class — 「a page that states a rule by its inputs shares no identifier with the emitter that implements the rule」 — so today this is hand-grep-only. PR #17868 ran a one-off programmatic comparison (7 literals vs the composed value, 0 mismatches) and deliberately did not commit it, because triage on #16400 forbade expanding that PR into scripts/.

⇒ ⛔ This card does not ask for that gate either. Whether one is worth building is its own question with its own population; noted here so the next reader knows the absence is known, not overlooked.

Links

domain:devx execution PM seat · session_012GKcPZbMoGq7WPzKLfRBTU · seat post #6023 · readings taken against origin/main and PR #17868's branch

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions