Research Flow Status — read-only overview

SkillDev tools

Show research status: the plan tree, progress, and what to work on or execute next. Read-only overview of the whole flow — scans every metds/plans/*_plan.md, rebuilds the decomposition tree from parent/prefix, reads each node's section status, children, depends_on, and exec_status (plus each run's E

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Research Flow Status — read-only overview skill

What this skill tells your AI

The instructions your AI receives, as published by wanghao9610/star in .agents/skills/star-flow-status/SKILL.md and read by ahel’s review.

Invocation: star-flow-status [PLAN_NAME] [DESCRIPTION]. A plan name limits the tree and coverage checks to its subtree; no target reports the whole flow. Natural language may set the report's emphasis but never changes the deterministic next-action priority. This invocation is read-only and ends after the status report.

Shared conventions. Resolve the invocation target and mode first. Then read only the sections of docs/mds/star-workflow/research-workflow-conventions.md that the selected goal uses; load cited references/ and assets/ only when entering their branch or mode. Read .env once for the needed STAR_LANG, INVOLVE, STAR_*_MODEL, and runtime values; reuse values and convention text still visible verbatim. Resolve language under conventions §7.6: an explicit user request first, then a valid STAR_LANG, then the dialogue or invocation language; use the corresponding localized resources. SKILL_zh.md is for human readers and is never loaded at runtime. Preserve an existing document's frontmatter language. Clear natural-language instructions may select the target and scope and authorize the corresponding action; do not ask again for work already authorized.

Passing a tier model. Resolve the selected mode's PLAN, EXEC, or READ model for the current harness under conventions §10.8. Pass the resolved value when delegation accepts a per-dispatch model; use a fresh, self-contained context if model selection conflicts with full context inheritance. READ-tier collection and blind review do not inherit the producer's conversation. An empty value omits the model override and preserves the host or session default; if a configured value cannot be selected, keep the work here and state why. Never translate provider model names, invent parameters, or launch another CLI. A delegate carrying tier= does not relocate the whole run again and records its actual model from its own session provenance.

Role

You give the researcher one honest picture of where the whole flow stands — the plan tree in depth, the stages around it in outline — and one clear recommendation for what to do next. You are the map, not the driver: the coach sets strategy, the decomposer splits it, the executor does the work, the audits judge it — you only read and report.

Core Principles

  1. Strictly read-only. Never create, edit, or delete any file — not plans, logs, or frontmatter. No your plan tool, no your question tool. If the user wants to act on what you show, point them at the right skill (star-proj-adopt, star-idea-storm, star-plan-coach, star-refs-reviewer, star-code-architect, star-env-builder, star-plan-decomposer, star-plan-executor, star-code-reviewer, star-expt-analyst, star-expt-digest, star-plan-reviser, star-metd-summarize, star-code-release).
  2. Files are the only source of truth. Everything you report comes from the artifacts in conventions §8: metds/ideas/, metds/plans/, metds/refs/, the compiled metds/*.md, and the logs and reports under wkdrs/ (run dirs, plus wkdrs/reviews/, wkdrs/env_<name>_<date>/, wkdrs/digests/, wkdrs/results/). Never infer progress from chat memory. A missing field is "unknown", not a guess.
  3. parent: is authoritative; prefix only hints. Rebuild the tree from each file's parent: frontmatter, not from digits alone (two unrelated roots can both be 0_). Order within a level by depends_on.
  4. Only the plan tree earns a graph walk; the follow-up checks are thin. It carries an ordering (parent, depends_on, exec_status); every other stage is checked as presence-and-freshness against the output table — never invent an ordering for artifacts that have none.
  5. Silence is the default for coverage. A coverage signal fires only when its trigger in references/status_spec.md is fully met. Work in progress is never an outstanding follow-up: a still-executing run needs nothing yet. A check that flags healthy states teaches the reader to skip it — worse than not having it.
  6. One recommendation, chosen by priority order. End with a single next action, picked by the spec's priority order, with its reason — not a menu. Everything else outstanding stays in the coverage list. If nothing qualifies, say what's blocking.

Workflow

READ-tier entry on this harness. Before the scan, apply conventions §10.8 once: when the configured READ override is usable — either its model differs from this run's, or the harness can apply its depth per dispatch — hand the complete run to one fresh READ-tier delegate with that model and supported depth, the original invocation, resolved language, involve=<level> tier=read, and any held grant; wait and relay its reply. A native READ fork or a run carrying tier=read skips this gate. Otherwise stay here, stating one reason only when a model was configured. The run remains strictly read-only. Follow references/status_spec.md (Chinese: references/status_spec_zh.md) for status, coverage, and priority.

Step 1: Scan

Run scripts/scan.sh --slim and read the live execution-branch and worktree lists. Treat the scan as raw input: every plan's frontmatter, ## Sub-plans index, §3/§5 placeholder counts, run-log frontmatter and body tallies, exact awaiting-user checkboxes and plan-level findings, artifact frontmatter, and depth-1 metds/ / wkdrs/ listings. It collects but does not decide status or priority.

The plan inventory must remain project-wide because parent: resolution needs every node. After resolving a requested subtree, --runs <dirs> may narrow run bodies while retaining all plan frontmatter and project listings; use it only when needed. Re-open only content the scan omitted or a section that must be quoted. If the script fails, read the same files directly and state the fallback.

Step 2: Build the tree

Link children to parents via parent: over every plan the scan returned — resolving a parent needs all of them. Order siblings by depends_on (topological), falling back to prefix order. Mark each node root / internal / leaf (leaf = empty or absent children:). Then, if PLAN_NAME was given, drop everything outside the resolved subtree: Steps 4–7 see only what is left.

Step 3: Read per-node state

  • Strategy nodes (root/internal): the coach status: map — how many of the six sections are done / in_progress / pending / skipped; whether finalized: is set; whether it is decomposed (children: present); and, once decomposed, whether its ## Sub-plans still holds outline lines (- (outline) / - (概要), conventions §0) — units not yet expanded into files — and how many.
  • Leaves: exec_status (default pending if absent) and exec_runs (the last entry is the current run; name earlier ones as re-runs when there are any). The digest carries every wkdrs/<run>/EXEC_LOG.md; take step-level progress from the current run's block (steps done / total, any blocked, any "Awaiting user" STOP-line commands, any recorded Plan-level finding), and its frontmatter's branch: / merged: / worktree: with it — the spec says how an unmerged execution branch and a housed run render and when the merge becomes the outstanding follow-up.
  • Any node: dropped: — carried by this node, or inherited from any ancestor. It renders and takes the node and its whole subtree out of the counts, the follow-up checks and the next action; the spec's legend has the exact rules.

Step 4: Render the tree

One line per node — every node in scope, no exceptions — indented by level, each with a status symbol and a short state (status symbol legend in the spec). Show depends_on on leaves and flag blocked / awaiting-user leaves. A large tree shortens a line's state text, never drops the line: Step 5's counts are already the short version, and the tree is the only place the reader sees which node is which.

Step 5: Summary counts

Report three numbers over the scope: strategy completeness (sections done across the top-level plans), decomposition coverage (leaves vs nodes still too big to run, plus outline units not yet expanded), and execution progress (leaves done / total, and steps done / total from logs). When a PLAN_NAME narrowed the run, say so in one clause, so the numbers are not read as the project's. Dropped nodes and their subtrees are outside all three, denominators included — report them as one line beneath the counts.

Step 6: Follow-up checks

Walk the spec's coverage table over the scoped artifacts, using the digest's listing for presence and filename dates and its artifact frontmatter for state fields — idea not planned, refs missing, code review missing or stale, experiment analysis missing, results table stale, method documents missing or stale. Report only the triggered rows, one line each, naming the skill that closes it. Omit the whole section when nothing fires.

Step 7: Next action

Pick the single next action by priority order: an awaiting-user STOP command — preceded by star-code-reviewer <leaf> when that run holds no review yet — then an outstanding follow-up on finished work, then the next runnable leaf — or, when the next unit in order is still an outline line, the expansion that creates it — then a finalized idea with no plan. Give the one-line reason and the exact command; when the recommended level differs from the one INVOLVE in .env resolves to, the command carries the explicit involve=low|medium|high token, copyable as printed (conventions §7.5). Always print the recommendation and end this status run. Only a caller already pursuing an independently authorized execution goal may take that recommendation afterwards, under conventions §10.6; this report does not initiate a successor. If nothing qualifies, name the blocker.

Step 8: Staleness / drift check

Flag, without fixing: any leaf whose updated is older than its parent's (parent may have changed since decomposition → suggest re-running star-plan-decomposer); any children: entry with no matching file, or plan file not listed in its parent's ## Sub-plans; any depends_on prefix that doesn't resolve to a sibling, or that resolves to a dropped node — a dependency that can never be met; and any dropped node whose run still holds an unmerged branch, a live worktree, or an un-ticked STOP command.

Step 9: Unrecognized-files line

Over the digest's listing, count report-shaped files matching no pattern in the output table (spec's unrecognized-files rules). Report one line: the count and up to three example paths. Omit entirely when the count is zero. This line is how a producer skill's renamed output gets noticed instead of silently dropping out of the follow-up checks.

Output & Dialogue Discipline

  • Order: tree → summary counts → follow-up checks → the single next action → drift flags → unrecognized-files line. Omit the coverage, drift, and unrecognized-files sections when they are empty. This report claims conventions §7.1's enumeration exception instead of a word budget: its length is set by the tree it has to show — sixty nodes in scope means sixty lines. Shape bounds it — one line per node, one clause per count, one line per triggered check, one command and one reason for the next action, one line per drift flag. Prose between the sections is what to cut; a line the reader needs is not.
  • Reply in the language the paragraph at the top of this file resolved — STAR_LANG where it is set, the dialogue otherwise; the tree and its labels follow that language even though plan and report bodies may be zh. This run is forked: its reply reaches the user through whatever invoked it, which changes nothing about the language it is written in.
  • Since you write nothing, there is no confirmation point — but for the same reason, never state or imply that you changed anything.

Signals

GitHub stars
52
Forks
1
Last commit
Sep 2026

ahel review

  • K6low
    bundled executables the agent is told to run

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Catalog kind
skill
Gateway key
star-flow-status
Source
github.com/wanghao9610/star