Skip to content

Condense talk-html skill contract - #1

Open
liush2yuxjtu wants to merge 1 commit into
LiuShiyuMath:mainfrom
liush2yuxjtu:condense-talk-html-skill-contract
Open

Condense talk-html skill contract#1
liush2yuxjtu wants to merge 1 commit into
LiuShiyuMath:mainfrom
liush2yuxjtu:condense-talk-html-skill-contract

Conversation

@liush2yuxjtu

@liush2yuxjtu liush2yuxjtu commented Jun 2, 2026

Copy link
Copy Markdown

Summary

  • Condense the talk-html skill from a long procedural spec into a user-wants/tools/outputs contract.
  • Keep the no-forced-Claude-TUI rule while requiring real prompt/response evidence when TUI is used.
  • Preserve agent-readable provenance and human-readable visual report requirements without prescribing a fixed eval recipe.

Checks

  • check-canon: all local skill copies share the same sha256
  • verify-evidence.sh: existing ccxunfeiad proof page still passes
  • git diff --check: pass

Summary by CodeRabbit

  • Documentation
    • Reorganized skill contract with clearer, step-by-step workflow and requirements specifications.
    • Enhanced content metadata and provenance tracking standards.
    • Updated audit UI affordances and editing resume workflow behavior.
    • Refined post-publish image handling procedures.

@coderabbitai

coderabbitai Bot commented Jun 2, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR comprehensively restructures the talk-html skill specification to enforce stricter provenance, evidence tracking, and metadata requirements. The contract is reframed around authenticity and portability; the workflow is reorganized into explicit numbered steps with tightened metadata tracking; validation gates are made fail-closed; and image generation moves to a post-publish, fresh-session pipeline with strict embedding rules.

Changes

talk-html skill specification

Layer / File(s) Summary
Contract framing and non-negotiable requirements
skills/talk-html/SKILL.md
The skill contract is redefined with explicit output guarantees: real evidence-grounded content, portability, no fabricated/mocked media, and restrictions on terminal/TUI visuals and fonts.
End-to-end workflow with metadata and provenance
skills/talk-html/SKILL.md
The workflow is reorganized into numbered steps with mandatory preflight healing, explicit page properties, evidence gathering, and self-contained HTML rules. Required talk-html-meta and talk-html-evidence metadata blocks are operationalized; audit pill and "继续修改" UI affordances are specified for clipboard copy/resume behavior.
Quality bar, evidence gating, and failure modes
skills/talk-html/SKILL.md
Validation becomes fail-closed with explicit verify-evidence.sh and publish.sh gating; quality criteria, motion/provenance proof requirements, and rejection of reviewer-unverifiable modalities are defined.
Image generation and embedding workflow
skills/talk-html/SKILL.md
Image generation moves to a stricter post-publish pipeline: publish base page, open fresh ChatGPT session, use gpt-image + browse with raw URL prompt, embed images as data: URLs, re-verify/re-publish, and forbid fabricated fallback images.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 A rabbit revises the spec with care,
Drawing clearer lines, no mocked affair—
Evidence binds the words, metadata pins the truth,
And images bloom from fresh sessions, in proof!
No fabrication here, just honest roots. 🌱

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Condense talk-html skill contract' directly and clearly describes the main change: replacing a long procedural specification with a more concise contract. This accurately summarizes the primary objective of the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0c97e6eb32

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread skills/talk-html/SKILL.md
Comment on lines 226 to 228
```bash
bash ~/.agents/skills/talk-html/publish.sh "$HTML_PATH" # default: secret gist (link-only sharing)
bash ~/.agents/skills/talk-html/publish.sh "$HTML_PATH" --public # public gist (listed on profile)
bash ~/.agents/skills/talk-html/publish.sh "$HTML_PATH"
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Run evidence verification before publishing

In the workflow for pages with GIF/MP4/WebM evidence, this publish step no longer includes the explicit verify-evidence.sh "$HTML_PATH" gate that the prior contract required, and the checked skills/talk-html/publish.sh in this repo only creates the gist/appends the index; it never invokes that verifier. When an agent follows these lines, a page with missing talk-html-evidence/run-log can be uploaded as a rendered gist, defeating the anti-fake evidence contract. Please keep a pre-publish verifier command here or make publish.sh actually enforce it.

Useful? React with 👍 / 👎.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@skills/talk-html/SKILL.md`:
- Around line 206-214: The copied resume command in the "Clipboard string" block
always uses "claude --resume <session_id>" which contradicts the helper text
that says users can paste into Claude/Codex; update the clipboard string (the
text inside the ```text block referenced by the "Clipboard string" and the UI
element labeled "复制续修指令") so it matches the documented flow by either (a)
emitting the correct CLI per session type (use a placeholder like
<assistant_cli> so callers can substitute "claude" or "codex"), or (b) including
both variants (e.g., a short note showing the codex equivalent) and ensure the
helper text refers to the same command form; change only the clipboard string
and any adjacent helper copy so "claude --resume <session_id> ..." is no longer
hard-coded when Codex is supported.
- Around line 236-245: The "9. Print URLs" section currently demands printing
"exactly" four URLs (local, gist, raw, rendered) but elsewhere (and in
failure-mode table) allows publish/no-publish flows where gist/raw/rendered may
be missing; update the contract text so it is consistent: change the "Print
exactly" requirement to state that the agent must always print the local file
URL and then print gist/raw/rendered only when available, and define the exact
placeholder or omission behavior for absent URLs (e.g., omit the line or print
"n/a") for clarity; update the "9. Print URLs" heading and any corresponding
examples and failure-mode descriptions to reference the optional nature of
gist/raw/rendered and ensure the tokens 'local', 'gist', 'raw', 'rendered' are
used consistently across the doc.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 3b038bcc-0b82-49a6-96c8-d1d821379b85

📥 Commits

Reviewing files that changed from the base of the PR and between 99a64fa and 0c97e6e.

📒 Files selected for processing (1)
  • skills/talk-html/SKILL.md

Comment thread skills/talk-html/SKILL.md
Comment on lines +206 to +214
- one-line text input for the desired change;
- button "复制续修指令";
- helper text telling the reader to paste it into Claude/Codex.

In every other case — including when the caller is another agent, and including when the user never said anything about publishing at all — run the publish command below. "The user didn't explicitly say to publish" is **not** an opt-out; absence of an opt-out means publish.
Clipboard string:

If the user later wants changes, regenerate and re-run `publish.sh` — it creates a fresh gist. Don't treat the first publish as a point of no return.
```text
claude --resume <session_id> "继续修改我用 talk-html 生成的产物(slug: <slug>;本地 <local_path>;若会话已失效,先跑 bash ~/.agents/skills/talk-html/recall.sh <slug> 定位它)。修改要求:INSTR。改完按 talk-html 流程重新发布 gist 并打印四个 URL。"
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Make the “继续修改” command consistent with Codex support text.

The helper text says users can paste into Claude/Codex, but the copied command is always claude --resume .... For Codex sessions, this is misleading and breaks the documented return path.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@skills/talk-html/SKILL.md` around lines 206 - 214, The copied resume command
in the "Clipboard string" block always uses "claude --resume <session_id>" which
contradicts the helper text that says users can paste into Claude/Codex; update
the clipboard string (the text inside the ```text block referenced by the
"Clipboard string" and the UI element labeled "复制续修指令") so it matches the
documented flow by either (a) emitting the correct CLI per session type (use a
placeholder like <assistant_cli> so callers can substitute "claude" or "codex"),
or (b) including both variants (e.g., a short note showing the codex equivalent)
and ensure the helper text refers to the same command form; change only the
clipboard string and any adjacent helper copy so "claude --resume <session_id>
..." is no longer hard-coded when Codex is supported.

Comment thread skills/talk-html/SKILL.md
Comment on lines +236 to 245
### 9. Print URLs

Output exactly these four lines, in this order:
Print exactly:

```
```text
local: file://<path>
gist: <gist page URL>
raw: <raw.githubusercontent URL>
rendered: <htmlpreview.github.io URL>
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Resolve the contradictory URL output contract.

Line 239 says to print exactly four URLs, but Line 233-235 and the failure-mode table explicitly allow no-publish / publish-failure flows where gist/raw/rendered do not exist. This creates an impossible requirement for compliant agents.

Proposed contract-safe wording
-Print exactly:
+If publish succeeds, print exactly:
 ...
 local:    file://<path>
 gist:     <gist page URL>
 raw:      <raw.githubusercontent URL>
 rendered: <htmlpreview.github.io URL>
+If publish is skipped or fails, print:
+local:    file://<path>
+publish:  bash ~/.agents/skills/talk-html/publish.sh "<path>"
+reason:   <why gist/raw/rendered are unavailable>

Also applies to: 233-235, 286-289

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@skills/talk-html/SKILL.md` around lines 236 - 245, The "9. Print URLs"
section currently demands printing "exactly" four URLs (local, gist, raw,
rendered) but elsewhere (and in failure-mode table) allows publish/no-publish
flows where gist/raw/rendered may be missing; update the contract text so it is
consistent: change the "Print exactly" requirement to state that the agent must
always print the local file URL and then print gist/raw/rendered only when
available, and define the exact placeholder or omission behavior for absent URLs
(e.g., omit the line or print "n/a") for clarity; update the "9. Print URLs"
heading and any corresponding examples and failure-mode descriptions to
reference the optional nature of gist/raw/rendered and ensure the tokens
'local', 'gist', 'raw', 'rendered' are used consistently across the doc.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant