Import On Visibility
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing long pages, dashboards, or content feeds with expensive offscreen modules.
用户可见输出契约 Owner — 统一入口检查、完成检查、确认、进度、结果、阻断及内部产物到用户交付的确定性投影. An agent skill from devcodex-labs/devcodex.
$ npx skills add devcodex-labs/devcodex --skill user-visible-output-contract -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install devcodex-labs/devcodex user-visible-output-contract --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/devcodex-labs/devcodex.git skills-src && mkdir -p .claude/skills && cp -r skills-src/content/skills/user-visible-output-contract .claude/skills/user-visible-output-contract && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "user-visible-output-contract" agent skill from https://github.com/devcodex-labs/devcodex/tree/main/content/skills/user-visible-output-contract into .claude/skills/user-visible-output-contract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "user-visible-output-contract", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/devcodex-labs/devcodex/tree/main/content/skills/user-visible-output-contractType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add devcodex-labs/devcodex --skill user-visible-output-contract -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install devcodex-labs/devcodex user-visible-output-contract --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/devcodex-labs/devcodex.git skills-src && mkdir -p .agents/skills && cp -r skills-src/content/skills/user-visible-output-contract .agents/skills/user-visible-output-contract && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "user-visible-output-contract" agent skill from https://github.com/devcodex-labs/devcodex/tree/main/content/skills/user-visible-output-contract into .agents/skills/user-visible-output-contract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "user-visible-output-contract", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add devcodex-labs/devcodex --skill user-visible-output-contract -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install devcodex-labs/devcodex user-visible-output-contract --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/devcodex-labs/devcodex.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/content/skills/user-visible-output-contract .cursor/skills/user-visible-output-contract && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "user-visible-output-contract" agent skill from https://github.com/devcodex-labs/devcodex/tree/main/content/skills/user-visible-output-contract into .cursor/skills/user-visible-output-contract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "user-visible-output-contract", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/devcodex-labs/devcodex.git --path content/skills/user-visible-output-contract--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add devcodex-labs/devcodex --skill user-visible-output-contract -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install devcodex-labs/devcodex user-visible-output-contract --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/devcodex-labs/devcodex.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/content/skills/user-visible-output-contract .gemini/skills/user-visible-output-contract && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "user-visible-output-contract" agent skill from https://github.com/devcodex-labs/devcodex/tree/main/content/skills/user-visible-output-contract into .gemini/skills/user-visible-output-contract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "user-visible-output-contract", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install devcodex-labs/devcodex user-visible-output-contractInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add devcodex-labs/devcodex --skill user-visible-output-contract -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/devcodex-labs/devcodex.git skills-src && mkdir -p .github/skills && cp -r skills-src/content/skills/user-visible-output-contract .github/skills/user-visible-output-contract && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "user-visible-output-contract" agent skill from https://github.com/devcodex-labs/devcodex/tree/main/content/skills/user-visible-output-contract into .github/skills/user-visible-output-contract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "user-visible-output-contract", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add devcodex-labs/devcodex --skill user-visible-output-contract -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install devcodex-labs/devcodex user-visible-output-contract --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/devcodex-labs/devcodex.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/content/skills/user-visible-output-contract .opencode/skills/user-visible-output-contract && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "user-visible-output-contract" agent skill from https://github.com/devcodex-labs/devcodex/tree/main/content/skills/user-visible-output-contract into .opencode/skills/user-visible-output-contract/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "user-visible-output-contract", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
user-visible-output-contract用户可见输出契约 Owner — 统一入口检查、完成检查、确认、进度、结果、阻断及内部产物到用户交付的确定性投影. An agent skill from devcodex-labs/devcodex.
User Visible Output Contract is an agent skill from devcodex-labs/devcodex. 用户可见输出契约 Owner — 统一入口检查、完成检查、确认、进度、结果、阻断及内部产物到用户交付的确定性投影
Its SKILL.md is about 4.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `intent.json` and `visible-output-contract.schema.json`).
The repository describes itself as: Intent-driven AI coding workflow runtime for consistent context, skills, approvals, validation, and handoffs across six AI coding hosts. The licence is AGPL-3.0.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 1dd4525. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmkindgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm and git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
User Visible Output Contract loads about 4.3k tokens when it runs. Until then it costs about 21 tokens; SKILL.md has 1,181 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from devcodex-labs/devcodex at commit 1dd4525, republished under its AGPL-3.0 licence (© devcodex-labs). 1,181 words, ~4,296 tokens.
.claude/skills/user-visible-output-contract/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.当任务需要输出 PC0~PC10、FC/SC/RC/T、CP/危险动作确认、长任务进度、最终结果、阻断原因或文件交付列表时,本 Skill 是用户可见语义与渲染的唯一 Owner。
本 Skill 只负责 ArtifactDeliveryManifestV1 → ArtifactAnchorProjectionV1 / UserFacingArtifactSetV1 → PostCompletionActionSetV1 → EntryCheckModelV3 → DevCodexVisibleEnvelopeV3 → renderer。最终结果生产者优先调用 composeFinalArtifactDeliveryEnvelope 串起 manifest、visible set、delivery attempts 与 envelope,禁止在最终回复中手写一套“主要产物”清单绕过该链路。它不替代 compliance 的检查含义、cp-gate 的确认状态、report/memory 的写入职责、host-contract-verification 的宿主 direct replay,也不判断专业内容质量。DevCodexVisibleEnvelopeV1/V2 只保留读取兼容,禁止新生产者继续写入。
确定性实现位于 hooks/_runtime/visible-output-contract.cjs,结构约束位于 visible-output-contract.schema.json。
| 场景 | 是否触发 |
|---|---|
| PC0~PC10 入口检查 | 必须;且须作为用户首次可见块先于实质正文与产物 mutation(S07 时序;文首补 PC ≠ 先输出) |
| FC/SC/RC/T 完成检查 | 必须 |
| CP1/CP2/CP3、验证预算、发布或其他 DevCodex 工作流确认 | 必须;文件/命令操作权限提示由宿主自身呈现,不由 DevCodex 复制审批 |
| 多批次进度、等待、阻断、恢复 | 必须 |
| 最终结果与文件交付 | 必须 |
| 仅内部状态写入且本轮无用户可见消息 | N/A + skipReason |
多 active 任务、用户说「继续/刚才/当前」、或投影实施/进度时,用户可见进度/最终回复须含:
activeTask(或等价任务名 + portable path)phaseKind 或 CP1~CP3 状态sourceDelivery=none|started|partial|completenextAllowedAction禁止:把「04 已有 / CP3 候选」写成「已在实施」。仅 CP3 confirmed + 05 + source mutation 才可 started。
探针:classifyTaskPhaseProjectionSample(scripts/lib/executable-absorption-gates.js)。
ArtifactDeliveryManifestV1:记录本任务所有持久化 mutation、恢复证据和审计证据;planned、observed、internalDelivered 必须精确对账,并在 sourceArtifactIds.plannedArtifactIds / observedArtifactIds / internalDeliveredArtifactIds 中保留原始规范化清单,供落盘后重新复算 manifestId 与 reconciliation。ArtifactAnchorProjectionV1:可选上下文锚点投影,只携带 canonical path、contentDigest、projectionDigest、truthSourceKind、stalePolicy 与 evidenceRefs,不复制正文。UserFacingArtifactSetV1:只能由 manifest 纯函数投影,禁止模型临场挑“主要产物”。PostCompletionActionSetV1:从已验证缺口、Profile 和用户授权边界投影“当前必做 / 唯一主动作 / 最多两个条件动作”;不得把产物文件当动作。EntryCheckModelV3:入口语义的唯一机器模型,固定承载 PC0 版本身份、PC1~PC7 既有事实、PC8 流程/方案决策、PC9 验证计划和 PC10 后续动作。DevCodexVisibleEnvelopeV3:承载 message kind、稳定状态、checks、entry check model、decision、visible set、action set、capability 和 semantic digest。rich-markdown / portable-markdown / plain-text;不得改变语义集合、顺序、状态或动作。禁止 renderer、Prompt、Hook parser 或最终回复反向补写 manifest 状态。
每个 entry 必须包含:
artifactId / canonicalPath / previousPath / lifecycleOperation / origin / ownership / artifactClass / deliveryRequirement / visibility / displayName / purposeKey / purposeText / userAction / readingOrder / contentDigest / evidenceRefs[]。
lifecycleOperation=create|update|rename|move|delete|unchanged-evidence;rename/move/delete 必须保留 previousPath,delete 使用 tombstone 语义。visibility=decision-required|result|evidence|optional-detail|internal-only。deliveryRequirement=required|supporting|internal;required 不得隐藏,internal 必须为 internal-only。reconciliation 必须满足 planned=observed=entries=internalDelivered;missing/unexpected/conflicting 任一非空即 BLOCK。sourceArtifactIds 必须保留规范化后的 planned / observed / internalDelivered 三组清单;完整性校验不得从 entries 自我重建三组清单来冒充原始输入已复证。file://、非语义 displayName、缺 digest/evidence 均为非法。raw-manifest/internal-only,不得借此例外漏记。TaskArtifactDeliveryManifestV2 不直接替代最终用户可见 manifest;需要进入最终回复或 ECR 时,必须通过 createVisibleManifestFromTaskDeliveryManifest 投影为 ArtifactDeliveryManifestV1,再继续 UserFacingArtifactSetV1 与 envelope 链路。当任务需要后续上下文续接、短投影或跨报告锚点时,必须从已验证的 ArtifactDeliveryManifestV1 纯函数生成 ArtifactAnchorProjectionV1,禁止手写锚点列表。
ArtifactAnchorV1 必须包含 artifactId / artifactKind / truthSourceKind / canonicalPath / contentDigest / projectionDigest / generatedAt / owner / status / stalePolicy / evidenceRefs[] / summaryLine / classification / anchorDigest。truthSourceKind=json-canonical|markdown-canonical|projection|external,由 classifyArtifactTruthSource 按 artifactKind 决定;调用方显式覆盖时也必须落入枚举。projectionDigest 与 summaryLine,不能替代 canonical contentDigest。file://、非法 status 或证据列表无效时,anchor projection 必须 invalid/BLOCK。默认用户面只包含:
decision-required;result;deliveryRequirement=required 的 evidence。session、daily、Agent/全局 SUMMARY、task state、checkpoint/runtime state、raw receipt、raw manifest、raw ledger 默认 internal-only,但仍必须写入、验证、进入 manifest 并参与 ECR。只有用户明确要求、resume/handoff、状态冲突、写入失败、治理调查、审计取证或文件本身就是审查对象时,才升级为可见。
投影 scope:
| scope | 行为 |
|---|---|
default | 最小必要用户交付 |
all-deliverable | 所有非 internal-only 项;用于用户要求完整交付清单 |
internal-audit | 包含 internal-only;仅审计、治理调查或用户明确要求内部留痕时 |
每次投影必须满足 listed + remaining = total,并按 decision-required → result → evidence → optional-detail、readingOrder、artifactId 稳定排序。
displayName + purposeText + userAction。需要你确认的文件 / 本批交付文件 / 完成交付文件 / 阻断证据。用户面交付表、CP 确认清单与 Envelope renderer 必须为每项提供可定位路径,且与语义名分离:
| 规则 | 要求 |
|---|---|
| 默认列 | 自由文本表:语义名称 | 用途 | 路径 | 操作(操作可并入用途列,但路径列不可省) |
| list 行 | 至少含 displayName + purposeText + 路径:… + 操作:… |
| 路径默认值 | workspace-relative portable(path.relative(workspaceRoot) 风格,正斜杠) |
| 绝对路径 | 仅当:用户明确要求、链接失败、targetRelation=outside-workspace、路径歧义、或 absolutePathFallback |
| Rich 并存 | Rich clickable 允许 语义链接 href=绝对路径(便于打开) + 路径列=portable;禁止再追加冗余 绝对路径:… 行(除非 fallback 激活) |
| 禁止 | legacy「主要产物 / 核心文件 / 路径列表」+ 裸绝对路径且无语义名/用途/操作 |
机器分类(classifyArtifactPathColumnSample):present / missing-path-column / legacy-bare-path / not-claimed。生产消费者:lifecycle-visible-reply.analyzeArtifactDelivery 必须调用该分类器;missing-path-column / legacy-bare-path 不得 verified-present。
Owner:本 Skill + hooks/_runtime/visible-output-contract.cjs + lifecycle-visible-reply.cjs;禁止平行新 Gate 命名体系。
与 LinkCapabilityDecision 的关系:路径列是定位字段,链接 mode 是打开能力;二者同向,不得用「Rich 不重复绝对路径」删掉 portable 路径列。
LinkCapabilityDecisionV1 保留为持久化记忆/产物相对链接投影契约。用户可见最终回复使用 ArtifactDeliveryResolver → HostLinkCapabilityDecisionV2 + ArtifactDeliveryAttemptV1:必须以 presentationSurface + capability evidence 选择 renderer,hostSurface 只验证 adapter 是否匹配,不能按客户端名称推定可点击:
| openMode | 使用条件 |
|---|---|
native-action | 当前呈现面原生动作已附加且存在 actionId;仅选择 renderer 不算动作 |
markdown-link | 当前呈现器的本地文件 Markdown 点击已验证 |
terminal-command | IDE/编辑器 CLI 命令已验证(VS Code、Zed、WebStorm) |
portable-path | 仅保证工作区相对定位 |
absolute-copy | CLI/Claude/未知或未验证 renderer 的可复制绝对路径降级 |
unavailable | 无法定位或打开失败,必须附 reason |
V1 的 mode 兼容语义仍为:
| mode | 使用条件 |
|---|---|
clickable | 当前 surface 的点击能力已 direct/fixture 验证 |
portable | Markdown 可用,但点击能力未验证或未知 |
plain | 只保证纯文本可复制 |
failed | 链接已失败或宿主无法定位目标 |
Rich clickable 只显示一个语义 Markdown 链接作为名称主表示,不得在路径列之外再重复明文绝对路径行。Portable/Plain 优先工作区相对或短路径。路径列规则见 ArtifactPathColumnGate。只有用户要求、链接失败、目标在工作区外、路径歧义或宿主无法定位时才强制路径列/ fallback 使用绝对路径,并记录 fallbackReason。
evidenceState=verified 必须携带非空 evidenceRefs;V2 hostSurface 与 Envelope context 必须一致,且 presentationSurface / rendererId / openMode 必须进入完整性与 semantic digest。mode、fallback、reason、target relation 或 decisionId 任一 sibling mutation 都必须 fail closed。failed/unavailable renderer 必须给出可复制的绝对定位与 fallbackReason,不能再次输出已知失败的相对链接。
ArtifactDeliveryAttemptV1 必须逐个绑定 artifactId、绝对 target、renderer/openMode、actionId、attempted、actionStatus、readback 和 evidence。只有 action 成功且 readback 成功可写 opened;已验证 Markdown/terminal action 尚未执行时最多为 ready;native action 未附加、attempt 缺失、动作或 readback 失败时必须为 fallback 并显示绝对路径。报告/记忆的相对 Markdown readback 只证明持久化内链,不能冒充最终对话 surface 的打开回执。
messageKind 固定为:
entry-check / completion-check / confirmation / progress / final-result / error-block。
状态固定为 PASS / WARN / BLOCK / UNVERIFIED / N/A,整体状态由 checks 严重度推导,禁止调用方覆盖;PASS 的 evidenceState 必须为 verified。当前生产者的 entry-check 必须完整保留 PC0PC10、ordinal 010 与 EntryCheckModelV3。PC0 必须区分 installed package、活动 runtime generation、可选源码候选和 alignment;PC8~PC10 分别绑定 WorkflowPlanDecisionV1、验证计划和后续阶段/用户动作。schema 无效、未知状态、缺必要 check、task/manifest/visible set/capability identity 不一致或 presentation 非法时,必须生成 VISIBLE_ENVELOPE_INVALID 的 BLOCK envelope,并强制 expanded portable 降级。
semanticDigest 对去展示后的 canonical semantic core 计算;presentation tier、图标、换行和本地化 summary 不得改变 digest。HostLink V2 的 renderer 选择及其 ArtifactDeliveryAttemptV1 状态属于交付事实,必须进入 V3 digest;V1 只读链接的纯显示差异保持历史兼容。
实施或审查结束后,用户面可以提示真正适用的下一步,例如生成接口文档、补 .http 验证、提交、切换目标分支、按 commit id cherry-pick 或推送;但必须先生成 PostCompletionActionSetV1,不能用泛化话术罗列菜单。
| 字段 | 约束 |
|---|---|
requiredNow[] | 当前交付不可缺的工作;一旦非空就禁止 completion-check/final-result 作完成声明 |
primaryAction | null 或唯一主动作;没有真实缺口时必须为 null,不得输出“继续当前动作”凑建议 |
conditionalActions[] | 最多 2 个,只在 reason 描述的前置条件成立后适用 |
| action | 必须包含 kind / label / reason / evidenceRefs / applicability / authorization |
authorization | requiredNow 可在既有任务授权内使用 not-required;可选非 Git 下一步只能是 suggest-only;Git 写动作使用 explicit-required,push 永远不得由建议文字推定为已授权 |
kind 至少覆盖 api-docs / http-verification / commit / switch-target / cherry-pick / push / other。同一个已知 kind 在一份 action set 中最多出现一次,避免用不同文案重复推荐同一动作;other 仍可表达两个真正不同的条件动作。如果接口文档或 .http 已被用户请求、Profile 或验收标准规定为本次必交付,它们属于 requiredNow 并须在完成前实施,不能挪到“下一步建议”。已完成、不适用或缺证据的动作不得推荐;用户交付文件只来自 UserFacingArtifactSetV1。
V1/V2 兼容规则:parser/renderer 可读取旧 envelope;V1 recommendedAction 只能映射为 legacy-v1-read-only + unverified + suggest-only 的内存视图,V2 入口只能映射为 legacy-v2-read-only。两者都不得据此推断 PC8~PC10、Git、文档类型、适用性或授权,也不得回写旧版本。
完成态 final-result / 完成宣称,以及 analyze / audit 收敛交付时,阅读主入口是最终回复(对话内已渲染 Markdown),报告文件是归档/深读/审计面,不是默认阅读路径。
| 块 | 要求 |
|---|---|
| 结果一句话 | 做成了什么 / 结论是什么 |
| 关键要点 | ≥1 条实质内容(单句含原因亦可);禁止为凑条灌水 |
| 与 FVS | 解耦:有验证矩阵不能代替结论叙事 |
| 与交付清单 | 路径列仍要(PF-175);不得用「打开 md 预览」作默认 userAction |
机器分类:analyzeDialogueNarrativeSample / classifyDialogueNarrativeSample / hasReadableNarrativeSnippet。
| classification | 含义 |
|---|---|
not-claimed | 非完成/收敛语境 |
present | 有可读叙事 |
narrative-missing | 宣称完成/收敛但只有链接/详见报告/纯矩阵 |
waived | 用户显式 override(只要路径/不要摘要等) |
负向:仅报告链接、仅「详见报告」、仅验证矩阵字段。
正向:结果句 + 要点;analyze 须同时满足报告落盘(见 PF-169 / link-only-thin)。
B1 classifier + Skill/单测;B2 lifecycle-visible-reply 在 Stop/PreCompact 有正文时写入 dialogueNarrativeStatus / analysisDeliveryStatus,dev+reportTouched 时进入 closure reminder;无正文仍 unverified(Grok 诚实上限)。
默认 userAction 写「深读时打开归档报告」;禁止「请用 Typora/浏览器打开预览」作为默认动作。
对 Copilot / Claude Code / Codex / Gemini / Grok / Cursor 用户可见完成态与入口态使用同一布局;宿主只改变硬拦/注入,不改变语义字段。Cursor Cloud Agent 保持 Partial / UNVERIFIED,但不能据此省略入口布局。
推荐顺序:
### DevCodex · 入口检查(三列表格 检查项 | 状态 | 结论,检查项写 PCx 短标签;PC0~PC10 人话;禁止进度缩写 / 折叠行)— 始终必出### 复审验证(白话) / 完成检查 / FVS / 产物表(见 NoisePolicy)禁止:入口检查写成施工日志;FVS 只有命令墙无白话;分析阶段失败证据冒充修复成功。
| 原则 | 规则 |
|---|---|
| P1 入口常显 | 非 chat 实质轮次必须 PC0~PC10;chat 同样不得省略入口,只豁免完成合规块 |
| P2 结果优先 | 正文结论是主阅读路径 |
| P3 静默通过 | 未宣称工作完成 → 用户面不贴完成检查/FVS/FC 全表/产物表/EnforcementHonesty |
| P4 失败展开 | BLOCK/WARN/验证失败/流程 gap/用户要详情 → 展开相关块 |
| P5 完成短证 | 宣称完成且全绿 → 短 FVS(白话 + 命令 exitCode + 边界),不默认 FC1~T13 |
| P6 双面证据 | 完整合规矩阵写入报告/记忆;对话默认不复读 |
| 块 | 未宣称完成 | 宣称完成且全绿 | 宣称完成有缺口 |
|---|---|---|---|
| 入口检查 | ✅ | ✅ | ✅ |
| 正文 | ✅ | ✅ | ✅ |
| 完成检查 FC 全表 | ❌ | 默认 ❌ | ✅ 只列失败项 |
| FinalValidationSummary | ❌ | 短证 | 全量 |
| 产物交付表 | ❌ | 有用户交付才一行/短表 | 有问题才展开 |
Stop 语义:workDoneClaimed(已完成/任务完成/宣告完成…)才强制完成脚手架 + FVS;仅出现 ### 完成检查 标题不等于工作完成。
dev / fix / self-fix 的 completion-check 或 dev 模式合规块宣告完成时,最终用户可见回复必须投影 FinalValidationSummaryV1 或等价短矩阵。报告可保留长日志,但最终回复不能只写“全绿 / 已通过 / 详见报告”。完成态还须满足上方 Dialogue-Primary 叙事最小包(与本 Gate 同时适用,不可互相抵消)。
呈现顺序(强制):先 白话 1~3 句,再证据表/命令行(须含 exitCode)。共享模板:content/shared/compliance/validation-summary.md。
最小字段:
| 字段 | 要求 |
|---|---|
plainSummary | 白话结论(推荐以 **白话** / 白话: 起笔) |
commands | 至少一条权威验证命令或明确 skipped + reason;执行过的命令必须列 exitCode |
runId/keyCount | runId、V 范围、关键计数或检查项数量至少一类 |
postCommitReplay | 出现 commit / 提交声明时必须列 post-commit replay;未提交时可写 N/A + reason |
workspaceSyncStatus | 写明 synced / skipped / blocked / N/A 未触发 及理由 |
dirtyBoundary | 写明 source-root / active-root dirty 边界;推荐含 git status clean-tree 等范围词 |
releaseActionBoundary | 明确 push / tag / release / publish 是否执行;未执行也必须写 |
reportRefs | 指向报告/清单等 required evidence,路径列仍受 ArtifactPathColumnGate 约束 |
机器分类:analyzeFinalValidationSummarySample / classifyFinalValidationSummarySample。负向包括:有 completion-check marker 但无命令、命令无 exitCode、只有“全绿/通过”、只链接报告、缺 workspace sync、缺 dirty boundary、缺 release boundary、提交任务缺 post-commit replay。
当最终回复、完成检查或交付文件列表支撑“已验证 / 已完成 / 已推送 / 推荐采纳”等 strong claim 时,ArtifactAnchorV1、ArtifactAnchorProjectionV1 与 FinalValidationSummaryV1 的 digest 可作为 EvidenceFreshnessReceiptV1.evidenceRefs 和 dependsOn 输入。用户面不展示内部 receipt 全文,只展示 StaleEvidenceLintDecisionV1.status/reuseDecision 的短摘要;缺 fresh evidence 时必须降级为 WARN/UNVERIFIED,不能只靠报告链接或 SUMMARY 宣称通过。
当用户可见回复以 Markdown/自由文本 输出入口检查(未走 Envelope API)时,Stop/lifecycle-visible-reply 不得仅因出现「入口检查 / PC0 上下文」字样判 verified-present:
| 规则 | 说明 |
|---|---|
| 分列必齐 | 须能识别 PC0…PC10 各自独立 行/单元格(推荐表格行含检查项、状态、结论三列,例如 PC0 中断处理 / PASS / …,兼容旧表格与列表形式);缺任一 → incomplete |
| 禁止折叠 | PC2–PC10 / PC2-10 / PC2~PC10 等合并范围 → pc-folded-range,precheck=verified-missing |
| 禁止施工日志 | PC3/PC6 等单元格禁止「写报告 02 / 见下清单 / 只读+复现」等进度缩写冒充语义 |
| PC0 版本 | PC0 行须区分 installed package、活动 runtime generation、可选源码候选与 alignment;仅版本号相同不得写 aligned |
| PC4 | dev 下 N/A 必须带 skipReason/跳过理由;不得无理由伪 N/A |
| PC8~PC10 | 分别写流程/方案二次判断、验证范围与耗时、后续阶段/自动继续/用户动作;showPlan=false 也不得删除这些检查 |
| 六宿主 | 模板同源;Grok 无 inject、Cursor Cloud 无用户级 Hook 时,仍须模型输出完整 PC0~PC10 |
| Owner | 本 Skill + hooks/_runtime/lifecycle-visible-reply.cjs(analyzeEntryCheckCompleteness);禁止平行新 Gate 命名体系 |
机器分类:complete / incomplete / not-claimed。负向 fixture:折叠行、缺 PC、dev PC4 无 skipReason。
只有 entry-check 和无待确认的 progress 可 compact,且必须同时满足:
compact 仍显示所有 check IDs、状态、整体状态、项目和“状态未变化”;不得省略计算、读取、意图判断或门禁。confirmation、error-block 永远 expanded。
unverified,不能断言 visible envelope 缺失。unverified-legacy,不能升级 verified。GrokTurnChecklist(见 host-parity-scorecard / host-parity-grok.md),不得把「无 inject」写成可省略入口或报告的理由;full-capable ≠ 已注入 PC0。变更本 Skill 或 runtime 时至少联查:
instructions.md、instructions/01-common.instructions.md、instructions/02-output-paths.instructions.md、instructions/16-report.instructions.md、instructions/17-compliance.instructions.md;compliance、report、memory、document-sync、host-contract-verification、test-router、execution-contract;绝对路径: 行(无 fallback 时);三档均含 路径: portable 列(PF-175)。EntryCheckModelV3、V1/V2 read compatibility、compact↔expanded、unknown/invalid fail-closed 全通过。FinalValidationSummaryV1 或等价短矩阵必须包含命令/exitCode、runId 或关键计数、workspace sync、dirty boundary、release action boundary;commit 声明必须包含 post-commit replay。npm run test:evidence-freshness 覆盖,并与 npm run test:visible-output 一起验证。classifyArtifactPathColumnSample 负向:缺路径列 / legacy 裸路径;正向:含 路径: 或表头路径列。© devcodex-labs, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in content/skills/user-visible-output-contract of devcodex-labs/devcodex.
Open the folder on GitHubat commit 1dd4525
User Visible Output Contract next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| User Visible Output Contract this skilldevcodex-labs/devcodex | 439 | — | ~4.3k | Automated safety check: Pass | AGPL-3.0 | |
| Import On Visibilitythedaviddias/Front-End-Checklist | 74k | — | ~532 | Automated safety check: Pass | MIT | |
| Agile Product Ownerdavila7/claude-code-templates | 32k | 2 repos | ~256 | Automated safety check: Pass | MIT | |
| AI VisibilityRyze-AI-Adgent/open-seo-mcp-skills | 4.4k | — | ~611 | Automated safety check: Pass | MIT | |
| Agile Product Owneralirezarezvani/claude-skills | 28k | 3 repos | ~3.2k | Automated safety check: Pass | MIT | |
| AI Visibility Auditevery-app/open-seo | 23k | — | ~3.2k | Automated safety check: Pass | MIT |
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing long pages, dashboards, or content feeds with expensive offscreen modules.
davila7/claude-code-templates
Agile product ownership toolkit for Senior Product Owner including INVEST-compliant user story generation, sprint planning, backlog management, and velocity tracking.
Ryze-AI-Adgent/open-seo-mcp-skills
Measure real AI-engine visibility — traffic from ChatGPT, Perplexity, Claude, Gemini and which pages they cite — from actual GA4 referral data, not prompt sampling.
alirezarezvani/claude-skills
Writes INVEST-checked user stories with acceptance criteria, splits epics, plans sprints from velocity and ranks the backlog with a weighted score.
every-app/open-seo
Audit how a brand shows up in AI answers about its market and deliver a short report on the few changes most likely to get it mentioned or cited, such as a third-party page to get onto, an owned…
irinabuht12-oss/marketing-skills
Audit how visible your brand is inside AI answers (ChatGPT, Claude, Gemini, Perplexity, AI Overviews).
devcodex-labs/devcodex
无障碍与国际化专家 Owner — 当任务涉及可访问性、键盘操作、焦点、屏幕阅读器、ARIA、语言地区、本地化、RTL、翻译资源、用户可见文案或多语言文档时使用;要求把包容性体验和本地化验证绑定到真实用户路径。
devcodex-labs/devcodex
AI Agent 系统架构专家 Owner — 当任务涉及 Agent 路由、工具调用、上下文管理、记忆、状态机、权限、人机协作、可观测性、回放验证或模型辅助治理时使用;要求把 Agent 行为设计成可解释、可恢复、可审计。
devcodex-labs/devcodex
API 契约架构专家 Owner — 当任务涉及 public API、HTTP/SDK/CLI 契约、版本兼容、错误模型、分页过滤、幂等、Schema、类型、迁移或消费者影响时使用;要求先冻结消费者契约,再设计实现与验证。
devcodex-labs/devcodex
架构设计文档编排 Owner — 当用户要求架构设计、系统设计、技术架构或可指导开发、Review 与任务拆分的完整方案时使用;要求从业务流程反推节点、状态、数据、一致性、异常补偿、ADR 与实施任务。
devcodex-labs/devcodex
审查公共维度 G0~G5 + Profile Freshness Check — 所有 audit 子类型必先执行的基础维度层
devcodex-labs/devcodex
审计工作流的跨会话状态机 — 在 <audit-root/.audit-state/<session-id.json 持久化轮次/发现项/收敛状态,支持 Token 中断后精准恢复
用户可见输出契约 Owner — 统一入口检查、完成检查、确认、进度、结果、阻断及内部产物到用户交付的确定性投影. An agent skill from devcodex-labs/devcodex. User Visible Output Contract is an agent skill from devcodex-labs/devcodex.
Run `npx skills add devcodex-labs/devcodex --skill user-visible-output-contract -a claude-code`. Or copy the skill folder (content/skills/user-visible-output-contract in devcodex-labs/devcodex) into .claude/skills/user-visible-output-contract in your project. Claude Code loads it when a task matches its description.
Run `npx skills add devcodex-labs/devcodex --skill user-visible-output-contract -a codex`. Or copy the skill folder (content/skills/user-visible-output-contract in devcodex-labs/devcodex) into .agents/skills/user-visible-output-contract in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add devcodex-labs/devcodex --skill user-visible-output-contract -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/user-visible-output-contract, .gemini/skills/user-visible-output-contract, .github/skills/user-visible-output-contract and .opencode/skills/user-visible-output-contract in your project.
Going by SKILL.md and its folder, User Visible Output Contract needs the command-line tools its instructions call (npm, kind and git).
SKILL.md contains no URLs. Its commands use npm and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
User Visible Output Contract is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.3k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with User Visible Output Contract: Import On Visibility (thedaviddias/Front-End-Checklist, 74k stars), Agile Product Owner (davila7/claude-code-templates, 32k stars), AI Visibility (Ryze-AI-Adgent/open-seo-mcp-skills, 4.4k stars) and Agile Product Owner (alirezarezvani/claude-skills, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
devcodex-labs (a GitHub organization) maintains it in devcodex-labs/devcodex, which has 439 GitHub stars. The repository holds 70 skills in this directory. The repository was last updated on September 17, 2026.
Source: devcodex-labs/devcodex on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.