Skip to content

Consumer install ships framework-internal tooling that no-ops (pipeline / runtime-bridge / packages/core/principles) #482

Description

@artyhoo

Found on a consumer polygon (pnpm monorepo: apps/* + packages/*, per-package ESLint flat config). Related to #478 — same root: the installer "consumerizes" at the link level, not at the working-state level.

Problem

transform_internal_refs() in install.sh (≈L38–49) rewrites markdown links pointing at docs/… / packages/… / README.md into ${UPSTREAM_BLOB_URL} GitHub blob URLs. That fixes broken links, but it cannot ship the runtime dependencies those tools need. So several framework-internal tools arrive in a consumer but silently no-op:

  • /pipeline (skill copied at install.sh ≈L283–290) requires docs/meta-factory/wave-sequencing-plan.md. Consumers have no docs/meta-factory/ at all → §1 plan-currency and §2/§3 dispatch degrade to no-op. Verified by running /pipeline <umbrella>: it printed MISSING: wave-sequencing-plan.md, Plan status: CURRENT (nothing to reconcile), and §3 produced no umbrella / no dispatch state.
  • runtime-bridge (§4c / §5 dispatch tree) invokes packages/runtime-bridge/src/cli/dispatch.ts and harvest.ts. That package does not exist in a consumer install.
  • §6 recursive self-application instructs npm --prefix packages/core run test:principles and links packages/core/principles/12-ai-laziness-traps.test.ts. A consumer's packages/core (if any) has no principles/ and no such script.

A link to a file is not the file; a link to a test is not a runnable test.

Why it matters

The tool is readable (links resolve to the upstream repo) but not operable. A consumer who runs /pipeline gets a tool that runs but has nothing to operate on — confusing, and indistinguishable from "broken" without reading the source.

Suggested directions (any one)

  1. Detect consumer context (pnpm-workspace.yaml present / no docs/meta-factory/) and do not ship framework-only skills (/pipeline, runtime-bridge instructions) to consumers.
  2. Or gate them: ship with an explicit guard that prints "requires framework layout (docs/meta-factory/…) — skipped in consumer mode" instead of silently no-opping.
  3. Or parameterize the skill so its runtime references (packages/core/principles, packages/runtime-bridge) are conditional and self-skip when absent.

The skill already anticipates the data gap (§1: "if wave-sequencing-plan.md is MISSING — write a stub and ask") — so the no-op is a known edge that could be promoted to an explicit consumer-mode skip.

Companion finding (#483): install is not "one-button" — copies files but leaves a manual checklist + no branch/MCP/plugin setup.

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

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions