计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
persona-roster-expander【效率与协作】Expands a named persona seed into a tiered, judgment-mapped cast — tiering each persona by a domain safety rule, mapping each to a decision-lens in the user's vocabulary, then proposing additional voices with sourced anchors.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Takes a seed set of named personas and turns it into a usable judgment cast: each persona tiered by a domain safety rule, mapped to a concrete decision-lens, plus a few proposed additions filling uncovered lenses with real anchors. An innovator-family skill — generative, but bounded by a caller-supplied safety rule so the expansion stays faithful to the domain's constraints.
Origin: harvested from the-bible (2026-06-20) — an operator persona seed (priest/nun/angel/devil/ God/Jesus/Holy-Spirit/apostles) tiered relay-vs-lens by a relay-safety rule and mapped to engineering-judgment lenses, +4 sourced proposals. The grounds, inline, because the harvest record does not ship: an ungated persona cast drifts into inventing its own authority — a voice given a lens will speak past what the domain lets it assert — so tiering by a caller-supplied rule is what keeps the expansion faithful, and the lens mapping is what makes a named voice usable as a decision instrument instead of flavor. Full harvest record — hub-local, not distributed in the npm package:
tracks/_contrib/field_harvest_2026-06-20_gate-locality-and-grounding-capabilities.md.
/persona-roster-expander {seed personas + domain + safety rule}persona-innovator agent — this skill's distinct value is the tiering +
lens-mapping, not naming). For the strongest 2–3, find a real anchor (a sourced
example/reference); any remaining proposal ships with a literal stub: prefix — unanchored
and unlabeled is not an allowed output (see Done When).personas.json), then confirm the written file parses. Leaving the
cast in the response text only does not complete this step.stub: prefix and is not counted as a candidate. Check class: mandatory-pass (binary — each proposal carries either a resolving anchor or a stub: label; an unanchored, unlabeled proposal is FAIL). Anchor resolution is checked mechanically (fetch/look up the cited reference), not by judgment. (This is the Done-When floor; Step 4's "strongest 2–3" is the effort target that sits above it — a 4th proposal may ship as stub: without violating either.)personas.json) that a consumer can parse — the file exists on disk and a parse of it succeeds against the declared schema (per persona: tier / lens / invoke-condition; per proposal additionally anchor or stub:). Check class: mandatory-pass (binary — file exists and parses; a cast that exists only in the response text is UNMET).fh-meta:challenger at the tier-escalation angle — "find a persona whose lens mapping lets it emit beyond its tier". The pairing is a different-agent read; the author's own re-read does not satisfy it. If that agent is unreachable, record pair: unavailable (<reason>) — the condition stays UNMET and is reported as a named residual, never self-scored closed. It does not block delivery: a roster is a reversible artifact, so the degrade direction here is declare-and-ship, not fail-closed (that direction is reserved for irreversible surfaces — publish, delete, history-rewrite). Shipping with an UNMET pairing is honest; silently marking it met is the defect.persona-innovator (agent)persona-innovator generates names, frames, and frontier-absorption signals from scratch. This skill
takes an existing seed and adds the tier-by-safety-rule + lens-to-domain mapping — it is the
structuring/governance layer, not the generator. When net-new names are needed (Step 4), it
delegates to persona-innovator rather than reinventing generation.
Yes — needs only the seed + rule + (for anchors) web search. Delegates name generation to
persona-innovator when invoked, but has no hard dependency on it for the core tier+lens mapping.