Skip to content
Agentmart
Submit a tool

verify-bidirectional

A skill that immediately updates the baseline and reflects it in the next session when the user raises a counter-argument to an AI recommendation.

Skill by chrono-meta

IndexedMIT★ 30
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/chrono-meta-verify-bidirectional

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

A skill that immediately updates the baseline and reflects it in the next session when the user raises a counter-argument to an AI recommendation. Triggered by "is that right?", "re-examine this", "something seems off here". Explicit /verify-bidirectional call also possible.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/verify-bidirectional

What's inside

Skill name
verify-bidirectional
Description
A skill that immediately updates the baseline and reflects it in the next session when the user raises a counter-argument to an AI recommendation. Triggered by "is that right?", "re-examine this", "something seems off here". Explicit /verify-bidirectional call also possible.
License
MIT
Instructions
339 lines in SKILL.md · view on GitHub

Agent Skills spec issues

  • allowed-tools: must be a space-separated string

Files (1)

  • SKILL.md

SKILL.md (first lines)

# verify-bidirectional — Bidirectional Self-Validation Automation

Automates the processing procedure for bidirectional self-validation. Three stages: user counter-argument → baseline update → next session reflection.

## Trigger Conditions

Immediately **after** this harness AI recommendation/agreement/decision is committed, when the user raises a refinement challenge:

1. **Proposition refinement**: "isn't it more like..." / "I'd say..." / "what about this" / "what's the root?"
2. **Baseline grep trigger**: User cross-references own assets, memory, CLAUDE.md rules, past decisions
3. **Meta-level trigger**: "if you have objections" / "double-check" / "essence" / "root cause"
4. **Side validation result**: User runs independent tools (`/skills` · `gh` · external fetch) → catches mismatch with this harness AI hypothesis

### Natural Language Triggers (works without internal vocabulary)

Also triggered in external user environments by these natural language phrases:

| Phrase | Intent |
|---|---|
| "is that right?", "re-examine this" | Request AI recommendation re-validation |
| "something seems off", "this doesn't feel right" | Counter-argument / refinement |
| "I think you said something different before" | Catch inconsistency with past decisions |
| "can you be more precise?" | Proposition refinement trigger |
| "what's your basis?", "why do you think that?" | Baseline grep trigger |
| "check that one more time" | Self-validation request |

### 🟥 5. Prescriptive doctrine statement — the category that fell through (added 2026-08-16)

Every trigger above is shaped as **doubt about a claim**. A large class of operator correction is not
doubt at all — it is a **standing rule being handed over**, stated as fact or instruction:

| Shape | Real examples (2026-08-16 session) |
|---|---|
| *"X should also include Y"* | *"입장리뷰에는 정적리뷰뿐만 아니라 **동적리뷰도 포함되어야 할 거야**"* |
| *"the real point of X is Z"* (redefining, not doubting) | *"부스팅보다 인큐베이터의 장점은 그 레포 전체를 감싸서 …**모든 것을 조작할 수 있는 권한**이 있는 거야"* |
| *"isn't this too late / wrong-ordered?"* (rhetorical, expects agreement) | *"이 실패가 CI 확인 단계에서야 발견되는 건 매우 **늦은 게 아닐까**"* |
| *"from now on, do W at Z"* | *"앞으로도 마감할 때 그 갈래로 이어갈 수 있게 **알아서 정리해줘**"* |

**Why these were missed 4 times out of 4** — they sit in the blind spot between the triggers (which
expect a *challenge*) and the Exceptions below (which release a *simple correction* with "no
review"). A doctrine statement is neither: it does not dispute a claim, and it is not a one-off fix
to apply and forget. Treated as the exception, it gets a verbal acknowledgment and evaporates at
session end. **Measured**: four such statements in one session, all acknowledged in conversation,
**zero landed in any file** until a later review grepped for them and found nothing.

**The tell is grammatical, and it is language-independent** — the listed phrases above are all
English interrogatives, which is why a Korean declarative (`~해야 할 거야` · `~인 거야` · `~아닐까`)
matched none of them. Do not fix this by appending more literals (Grep-Collision Treadmill, P10);
the discriminator is: **does this utterance describe how I should behave from now on, rather than
what is wrong with this one output?** If yes, it is this category regardless of language or phrasing.

**Required action** — an acknowledgment is not compliance. The statement must land **in a file** in
the same session: canon (`CLAUDE.md` / `knowledge/`) if it governs future behavior, memory if it is
about this operator, a signal file if it needs a decision first. Then say WHERE it landed, so the
operator can see it did.

**Exceptions** (this skill does NOT apply):
- Simple user correction ("this is wrong, redo it") = direct negation → immediate correction (no review).
  ⚠️ **Not the same as category 5 above** — "redo this" is scoped to one output; "from now on do X"
  is a standing rule. When both readings fit, take it as category 5: over-landing costs a file edit,
  under-landing loses the rule entirely.
- This harness AI self-catch (no external counter-argument) = `fact-checker` rule (narrow 1 / broad N+1)

## Execution Steps

### Step 1. Immediate Baseline Update Channel Processing

Treat user's statement as **external refinement material**. **Do NOT attempt to defend against it** — acknowledge possibility of partial weakening or correction of initial recommendation.

Core proposition: "refinement challenge ≠ fundamental negation". Priority is identifying where the initial recommendation is weakened.

**Evidence gate (overwrite ≠ soften)** — closes the sycophancy/steering vector where a bare assertion
("that's wrong, re-examine") flips a baseline with zero evidence (judge-robustness swarm, 2026-06-13).
"Do NOT defend" still holds for *this conversation's proposition* (anti-stubbornness is the point), but a
**persistent-baseline overwrite** (a rule, asset, memory, or `knowledge/` claim — anything that outlives
this session) requires a **supporting basis**, not mere pushback:

- **(a)** the user cited a file / line / commit / URL / past decision **and the cited content actually
  supports the challenge** — verified by *reading it*, not by its mere existence (an irrelevant-but-real
  citation is the out-of-context-grounding trap, the same vector phantom-quench guards), **or**
- **(b)** the Step 2 grep returns an actual contradiction that *supports the challenge* (not just any
  conflict with the original) — surfaced literally.

If a baseline overwrite is implied but **neither holds**, do not silently rewrite: verdict is **ESCALATE**
— surface *"this would overwrite baseline {X} with no cited evidence; confirm override, or provide a
source?"* and block the Step 4 cascade until the operator answers. Softening a local in-conversation
proposition (no persistent asset changed) proceeds as before — the gate fires only on persistent-baseline
writes. **Sequencing**: this gate is written in Step 1, but Step 4 is what enumerates affected persistent
assets — so if Step 4 later identifies *any* persistent asset to write, **re-apply this gate before Step
4.5** even if the original challenge first looked like a mere soften. This is **not** restored AI defensiveness: the AI still does not argue the user is wrong; it only
declines to *fabricate a baseline change* the evidence does not support (mirror of the steel-quench/phantom
mechanical-anchor principle — judged verdicts bind to evidence).

### Step 2. Consistency Area Grep (3-step mandatory)

Grep to find which rules, assets, or propositions conflict with the initial recommendation:

**Scope priority**:
1. `memory feedback_*.md` (especially operating model rules — meta principles, warning lines)
2. `CLAUDE.md` Sync/Push Protocol, asset ownership table
3. `tracks/*/learnings/feedback_*.md` — this harness AI's own rules
4. `knowledge/shared/harness-core/*.md` — higher-level framework

**Mandatory grep keywords** (baseline consistency guard):
- "drift" · "asset ownership" (CLAUDE.md)
- Asset names, abbreviations, identifiers explicitly stated in user's message

**External users**: Replace with your own environment's baseline keywords (prioritize asset names, abbreviations, identifiers from user's message).

### Step 3. Fact-Checker Self-Catch Mark

Mark the corrected weakened proposition as a fact-checker self-catch:

```
fact-checker self-catch #N (narrow 1 / broad N+1)
- This harness AI initial recommendation: {summary}
- Refinement challenge: {user's statement}
- Corrected recovery: {updated proposition}
- Consistency rule: {grep result}

From chrono-meta/forge-harness, MIT.

More from chrono-meta/forge-harness

Signals

Stars
30
Forks
1
Open issues
2
Last commit (this folder)
Sep 30, 2026 (28 days ago)
Last release
Oct 24, 2026 (4 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from chrono-meta

Cite this page

verify-bidirectional skill. Agent Mart. https://agentmart.dev/skills/chrono-meta-verify-bidirectional (last updated 2026-10-24)