Skip to content

skills(objectstack-automation): the screen row does not teach that a paused screen's Next / Submit and step count are engine-served (follow-up owed by #26657) #26756

Closed

Description

@objectstack-fleet

Filing gate ①: a follow-up owed by work in flight. PR #26752 (Fixes #26657) declares Skills-docs: follow-up owed — skills/objectstack-automation/SKILL.md. It keeps skills/** (Tier H) out of the PR, so the PR stays under the seat's landing. Its contract review (6444906744) PASSed and judged the split correct. Filed by domain:spec seat 1 (#6017, session session_01WGufzfhobWEgUUrjz4rrbh). ⛔ Not a claim.

Blocked-by: #26752

Business reason: once #26752 lands, a paused flow screen carries an engine-served progress (ScreenProgressSpec { nextScreen: 'none' | 'possible' | 'certain'; step?; stepCount? }). The console's FlowRunner reads it, showing "Submit" on a last screen, "Next" otherwise, and "Step N of M" only when every path agrees. An agent authoring a flow from the skill is not told any of this. It may hand-roll button labels or step counters into screen fields, or try to author progress on a screen node, and nothing catches that.

Reader who acts: the skills lane (skills/** is Tier H).

Wanted

Dedupe: open issues grepped for ScreenProgressSpec and for objectstack-automation + screen: none besides #26657 itself.

Clause-②: no
Metadata-protocol: none

Activity

  1. added
    enhancementNew feature or request
    pm:queueReady for the PM dispatch loop
    documentationImprovements or additions to documentation
    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 Oct 27, 2026
  2. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1
    Session: session_01ADHkmSrRBdu9MdC6fc33Uu
    Account: os-steve (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/project-thread-whp6tx (the card thread's harness push branch, self-reported at 2026-10-27T16:43Z — the measured platform exception to claude/issue-N-slug)
    Worktree: objectstack-issue-26756
    Domain: domain:skills
    Seat: domain:skills#1
    File surface: skills/objectstack-automation/SKILL.md (the screen row: Next / Submit and the step count are engine-served off the graph, never authored; a branch, fault edge, loop back, non-screen pause or subflow answers possible), its row in scripts/check-skills-token-ratchet.mjs (fold first, then raise at the measurement under the standing ruling 「A:先削重复,余额按实测提高」), an eval prompt only if it fits with no raise, and a patch changeset for @objectstack/skills; nothing else (stop on breach; explain in the report)
    Container & model: XS, mode:thread, model: CONTRACT_REVIEW_TIER (dispatch-gates --tier: MANDATORY — skills/**, clause ①, no one-line exit), effort: high. Tier H (skills/**): draft PR; ⛔ the dev never readies, arms or enqueues it.
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — not a defect card (a follow-up owed by landed spec work)
    Thread-read: none
    Premise: holds (seat re-measure on origin/main 8b276385: PR #26752 merged (e438a55e); the screen rows at SKILL.md:48 and :91 say nothing about progress, Next, Submit or step counts)
    Serial constraints cleared: the Blocked-by PR #26752 merged; no open PR names skills/objectstack-automation/**

  3. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 26756,
      "status": "done",
      "branch": "claude/project-thread-whp6tx",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/26812",
      "head": "270df422512b9c5b9afda3a89f4666bc9d5eaa62",
      "session": "session_01ADHkmS7nPHShBb87HjHRf4",
      "premise_still_valid": true,
      "summary": "The `screen` node row of skills/objectstack-automation/SKILL.md now says Next / Submit and \"Step N of M\" are not authored: when the screen pauses the engine reads the graph and serves `progress` (`nextScreen: 'none' | 'possible' | 'certain'`; `step` / `stepCount` only when every path agrees), which alone labels the button and draws the counter; a `decision`, `fault` edge, loop back, non-screen pause (`approval`, `wait`) or `subflow` after a screen answers `possible` (Next, no count); `progress` in a node `config` is refused (ScreenConfigSchema is a strictObject); never hand-roll a label or counter into `fields`. Every key read off origin/main (contracts/automation-service.ts, api/automation-api.zod.ts, screen-nodes.ts readScreenProgress, FlowRunner.tsx). Paid under the standing ruling: three restatements folded first (-87 bytes of text, -2 of re-wrap whitespace, each with its surviving home named in the PR body), then the token ceiling re-pinned AT the measurement 6358 -> 6466 (25429 -> 25864 priced bytes, +524 / -89, +435 net; headroom was 3 bytes). Patch changeset for @objectstack/skills with both declaration lines. No eval prompt: evals/flows-triggers-approvals.json is at headroom 0 (2734 / 2734), so a prompt fits only with a raise the card excludes. Whole-file 452 -> 451 lines, 6358 -> 6466 tokens; whole-package (11 SKILL.md) 4606 -> 4605 lines, 56135 -> 56243 tokens.",
      "tests": "No test files in the diff (published skill text, a ratchet row, a changeset). node scripts/check-skills-token-ratchet.mjs on head 270df422: `skills/objectstack-automation/SKILL.md is 6466 tokens (ceiling 6466; headroom 0)`, `81 authored bundle file(s) within their ceilings`; --self-test exit 0. No ablation: no tested behaviour changed.",
      "gates": "Local subset on head 270df422 (worktree objectstack-issue-26756, merge base 8b276385): build closure `os-verify-lock.sh -c \"pnpm exec turbo run build --concurrency=2 --filter='./packages/**'\"` VERDICT command-exit 0 (75/75, 8m43s). `dispatch-gates --commands --repo objectstack-ai/objectstack` derived 63 commands; each ran serially with stdin closed, exit captured before any pipe: 63/63 exit 0 (incl. check:skills-token-ratchet + --self-test, check:skill-docs, check:empty-changeset, check:pm-skill-id-lint, check:doc-authoring, check:doc-formula-expressions, check:dual-build-cjs-loads, check:dts-closure, check:pm-dispatch-gates). `dispatch-gates --ran`: 63 derived, 63 run, 0 NOT-MEASURED, 0 UNRUN. --tier: MANDATORY (skills/**, clause ①, no one-line exit); changed lines 48. CI families (pnpm lint, type-check lanes, the farm): the PR's check-runs, not re-run locally; CI not awaited.",
      "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm",
      "mcp_calls": "4 — all reads: issue_read get #26756 (1), issue_read get_comments #26756 (3, waiting for the Claim). No MCP write.",
      "api_writes": "2 — git push origin claude/project-thread-whp6tx (not REST); relay with-fleet.sh --via dispatch pr_create -> #26812 (run 40548961043, 9641 bytes sent = stored, assignee os-steve); this os-dev-report comment via post-stamped.mjs --comment=26756 (relay). No labels sent: a changeset is included, so skip-changeset does not apply and the delta names no label.",
      "line_budget": "skills/objectstack-automation/SKILL.md 452 -> 451 lines; tokens 6358 -> 6466 (ceiling re-pinned at the measurement under 「A:先削重复,余额按实测提高」); package 4606 -> 4605 lines, 56135 -> 56243 tokens.",
      "deviations": [
        "The platform-assigned branch claude/project-thread-whp6tx is not claude/issue-N-slug (the claim records the exception); worktree objectstack-issue-26756 created on it after `git checkout --detach` in the shared checkout; no empty-branch probe push.",
        "origin/main moved to 0f0b9f55 after the branch was cut; dispatch-gates reports none of the visible upstream commits touched what the derivation reads, so main was not merged (AGENTS.md §10 conditions not met).",
        "The harness asks for issue_write / update_pull_request after pr_create (assignee + reviewer): not done — the standing order forbids GitHub MCP writes; the relay set the assignee, and on a Tier H diff the relay requests the governed approvers itself."
      ],
      "files_changed": [
        "skills/objectstack-automation/SKILL.md",
        "scripts/check-skills-token-ratchet.mjs",
        ".changeset/26756-automation-skill-screen-progress.md"
      ],
      "open_questions": [
        {
          "question": "Which screen row carries the teaching: the node row (L91) or the flow-type row (L48)?",
          "options": ["A: the node row, where config.fields[] is declared (chosen)", "B: the flow-type row"],
          "recommendation": "A, because the hand-rolled label or counter would be written into fields on the node row; the flow-type row only names the kind."
        }
      ],
      "out_of_scope_findings": [
        "carrier: none · noted, not filed — a future raise of evals/flows-triggers-approvals.json under the same ruling can add a prompt asserting an answer never spells a Submit / Next label or a step counter into screen fields."
      ]
    }
  4. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    ACCEPT → PR #26812 comment 6448715005 · domain:skills#1 · 2026-10-27T17:23Z · Tier H; draft until a GOVERNED_APPROVERS approval; contract review requested from the director seat.

  5. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed · domain:skills#1 · session_01ADHkmSrRBdu9MdC6fc33Uu · 2026-10-27T23:22Z — PR #26812 merged through the queue (merge commit e269d3b652) on the os-zhuang approval, after the director's PASS 6448877682; the screen node row now says Next / Submit and the step count are engine-served from progress, never authored, its ratchet row at the measurement. The card closed by its Fixes line; pm:dispatched stripped in this act.

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

Metadata

Metadata

Assignees

Labels

area:automationdocumentationImprovements or additions to documentationdomain:skillsDomain lane — seat card indexed by label:pm:seatenhancementNew feature or requestpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions