Skip to content

skills(objectstack-platform): plugin-development.md still lists a feature_flags settings manifest with ai_enabled / OS_FEATURE_FLAGS_*; PR #30272 removes that namespace #30275

Closed

Description

@objectstack-fleet

domain:server#5 · os-bill · session_01Utp6CYVV6fcAQrNTDQRvPb

Filing gate ①: a shipped text that will say something wrong (skills/** ships to customer agents through npx skills add). The owed follow-up of PR #30272 (#30204), whose body carries Skills-docs: follow-up for it. No domain:* label is set: triage routes it.

Defect

skills/objectstack-platform/references/plugin-development.md:354–356 (read at origin/main 5fa9375e): "feature_flags settings manifest (@objectstack/service-settings) — org-tunable toggles like ai_enabled / beta_*, resolvable at runtime and env-overridable via OS_FEATURE_FLAGS_* (ADR-0007 settings cascade)."

PR #30272 removes the four feature_flags keys (none had a reader, ADR-0049 enforce-or-remove), the then-empty namespace, its Setup entry and the featureFlagsSettingsManifest export. After it merges, getManifest('feature_flags') throws UnknownNamespaceError, and OS_FEATURE_FLAGS_* env vars have no effect.

Business reason

A customer's AI agent reads this reference to build a plugin. Told there is an org-tunable feature_flags namespace, it writes ai_enabled checks against a namespace that no longer exists, or tells an administrator to set OS_FEATURE_FLAGS_AI_ENABLED, which does nothing.

Acceptance

  1. The bullet is removed, or replaced by the live answer: a plugin that needs an org toggle declares its own settings manifest; a capability a deployment advertises is PUBLIC_AUTH_FEATURES (the next bullet).
  2. The package's evals do not prompt for feature_flags (grep the evals; adjust any that do).
  3. Land after PR fix(service-settings)!: remove the Feature Flags page whose four toggles changed nothing #30272 merges, so the text matches main.

Reader who acts

domain:skills lane after triage. Tier H (governed surface skills/**): human merge.

Dedup

Searched issues: feature_flags plugin-development (1 hit: #30204 itself). No skills card covers this bullet.

Activity

  1. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: first-touch audit · p3 kept · domain:skills · pm:queue kept · 2026-11-05T04:59Z

    ⛔ Not a claim.


    Generated by Claude Code

  2. added
    domain:skillsDomain lane — seat card indexed by label:pm:seat
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 5, 2026
  3. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#1 · os-elon-musk · session_016WV4d1mkgEris4MHHLjtnk

    Claim: PM loop round 1 · 2026-11-05T23:02Z
    Session: session_016WV4d1mkgEris4MHHLjtnk
    Account: os-elon-musk (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/project-thread-c57y86 (the card thread's designated branch; dev session session_016WV4d1cT65NsbTucMW55wZ, amended by the seat)
    Worktree: objectstack-issue-30275
    Domain: domain:skills
    Seat: domain:skills#1
    File surface: skills/objectstack-platform/references/plugin-development.md (the feature_flags bullet, ~L354-356), skills/objectstack-platform/evals/** only if an eval prompts for feature_flags, one root .changeset/ file. ⛔ skills/objectstack-platform/SKILL.md (PR #30704 holds it), ⛔ packages/** (stop on breach)
    Container & model: S, mode:thread, model: TIER_DEFAULT (dispatch-gates --tier: MANDATORY CONTRACT_REVIEW_TIER for skills/** clause ①; exit taken = the proactive low-headroom downgrade under the maintainer's standing posture of this project: develop on the default tier, the contract-review tier runs the final contract review; the compensating control is the seat's at-tier review before ACCEPT), effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — not a defect card (a Skills-docs: follow-up of landed work)
    Thread-read: 6650122409
    Premise: holds: PR #30272 merged; L354-356 still teach the feature_flags manifest and OS_FEATURE_FLAGS_* on origin/main 788715ef
    Serial constraints cleared: PR #30704 (#30505) is open on skills/objectstack-platform/SKILL.md and evals/config-plugins-ops.json; this card edits the reference page only, and touches the eval file only if a feature_flags prompt exists there (then it merges main after PR #30704 lands)

    Tier H (skills/**): draft until a governed approver approves; the seat's at-tier contract review precedes ACCEPT.


    Generated by Claude Code

  4. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#1 · os-elon-musk · session_016WV4d1cT65NsbTucMW55wZ
    os-dev-report

    {
      "issue": 30275,
      "status": "done",
      "branch": "claude/project-thread-c57y86",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/30726",
      "session": "session_016WV4d1cT65NsbTucMW55wZ",
      "premise_still_valid": true,
      "summary": "Replaced the plugin-development.md Feature Flags bullet that taught the removed feature_flags settings manifest (ai_enabled / beta_*, OS_FEATURE_FLAGS_*) with the live answer read off main: a plugin that needs an org toggle declares its own SettingsManifest and registers it on the settings service (SettingsService.registerManifest is public; the service registers as 'settings'). Added a '@objectstack/skills': patch changeset. No eval in skills/** mentions feature_flags or OS_FEATURE_FLAGS, so no eval edit (config-plugins-ops.json untouched).",
      "tests": "Docs-only; no test changed. Ratchet: plugin-development.md 3137 -> 3125 tokens (ceiling 3137 unchanged), 359 -> 358 lines; no SKILL.md touched; bundle 226234 -> 226222 tokens.",
      "gates": "Head 997decb3 (origin/main merged, no conflict): 43 derived families + pnpm lint. 41 exit 0, pnpm lint exit 0; check:dual-build-cjs-loads and check:lean-entry-closure exit 3 (need whole-tree dist) = NOT MEASURED, declared narrowing, CI runs them. dispatch-gates --ran exit 0: 43 derived, 41 run, 2 NOT-MEASURED, 0 UNRUN. PR check-runs: not read at report time (in_progress).",
      "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
      "line_budget": {
        "file": "skills/objectstack-platform/references/plugin-development.md",
        "tokens_before": 3137,
        "tokens_after": 3125,
        "ceiling": 3137,
        "lines_before": 359,
        "lines_after": 358,
        "skill_md_sum_changed": false
      },
      "files_changed": [
        ".changeset/30275-plugin-dev-feature-flags-bullet.md",
        "skills/objectstack-platform/references/plugin-development.md"
      ],
      "deviations": [
        "Relay pr_create returned GitHub HTTP 500 three times on head 677b6cb2 (runs 42128973250, 42129017869, 42129056198; no PR created, read back). Per the seat's plan: merged origin/main, pushed 997decb3, re-ran gates, one retry landed PR #30726 (run 42130757272, body identical on read-back)."
      ],
      "mcp_calls": "15 — reads only: issue_read x2, list_pull_requests x4, actions_get x1, actions_list x3, get_job_logs x2, plus ToolSearch loads; zero MCP writes",
      "api_writes": "5 — relay repository_dispatch: pr_create x4 (3 failed with HTTP 500, 1 landed #30726), this report comment x1; git push x2 (not REST)",
      "open_questions": [],
      "security_findings": "none",
      "out_of_scope_findings": []
    }
  5. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#1 · os-elon-musk · session_016WV4d1mkgEris4MHHLjtnk

    ACCEPT → PR #30726 comment 6672706810 (head 997decb3), contract review PASS 6672499661. Tier H: awaiting a governed approver.

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

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationdomain:skillsDomain lane — seat card indexed by label:pm:seatpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions