Skip to content
Agentmart
Submit a tool

contention-layer

When two skills, agents, or independent research tracks produce conflicting verdicts on the same output, reads the conflict as a signal rather than an error…

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-contention-layer

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

When two skills, agents, or independent research tracks produce conflicting verdicts on the same output, reads the conflict as a signal rather than an error and harvests new skill candidates or insight deltas — including a Dual-Track Grounding conflict (open-frontier track vs internally-grounded recall track disagreeing). Routes skills born from contention to fh-meta (meta-layer), the commons plugin (project-agnostic), or field harvest (domain-specific). Triggered by "two skills conflict", "they produce different conclusions", "contention-layer", "contention harvest", "open vs grounded contradiction", "research tracks disagree".

Use cases: research

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/contention-layer

What's inside

Skill name
contention-layer
Description
When two skills, agents, or independent research tracks produce conflicting verdicts on the same output, reads the conflict as a signal rather than an error and harvests new skill candidates or insight deltas — including a Dual-Track Grounding conflict (open-frontier track vs internally-grounded recall track disagreeing). Routes skills born from contention to fh-meta (meta-layer), the commons plugin (project-agnostic), or field harvest (domain-specific). Triggered by "two skills conflict", "they produce different conclusions", "contention-layer", "contention harvest", "open vs grounded contradiction", "research tracks disagree".
License
MIT
Instructions
166 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)

# contention-layer — Contention Harvest + New Skill Routing

When two skills conflict, **harvest the signal** instead of discarding one. Find the validation angle that neither skill addressed, and onboard new skill candidates into the FH ecosystem according to their routing path.

> Philosophical basis: Cognitive dissonance in humans is not a failure but a core asset — the ability to hold contradictions created culture. In the FH ecosystem, conflict is the signal from which new skills are born.

## Triggers

```
/contention-layer                    # analyze current conflict situation
/contention-layer --skills A B       # specify two skills for contention analysis
```

Phrase triggers: "two skills conflict" · "weird when used together" · "they produce different conclusions" · "contention harvest" · "contention" · "open vs grounded contradiction" · "research tracks disagree" · "dual-track grounding **+ conflict/disagree/contradict**" (the phrase "dual-track grounding" alone collides with `phantom-quench` on the word "grounding" — measured Step-0.5 probe #3, 2026-06-17; it fires this skill only when a conflict word co-occurs)

```
/contention-layer --tracks open=<deep-research result> grounded=<memory/CATALOG recall>   # Dual-Track Grounding
```

## Step 1. Collect Conflict Points

Record clearly which sources conflicted on which output, and in which direction. The conflicting
**sources** may be two skills/agents, or two independent **research tracks** (Dual-Track Grounding).

```
Conflicting source A: {skill name / "open-frontier research"} — verdict: {conclusion}
Conflicting source B: {skill name / "internally-grounded recall"} — verdict: {conclusion}
Conflicting output: {TC / diagnostic report / design document / a factual claim / ...}
Conflict point: {which item, by which criteria difference}
```

**Conflict type classification**:
- `Criteria conflict`: Same item evaluated by different criteria (e.g., coverage 50% = Pass vs Fail)
- `Scope conflict`: A includes, B excludes a certain domain
- `Order conflict`: Same goal approached with different preconditions
- `Philosophy conflict`: The measurement purpose itself differs (e.g., risk reduction vs coverage maximization)
- `Track conflict` (Dual-Track Grounding): The same claim is asserted by an **open-frontier** track
  (deep-research / WebSearch over external sources) and contradicted — or unsupported — by an
  **internally-grounded** track (memory / CATALOG / past-session recall). The disagreement is the signal.

### Step 1-b. Dual-Track Grounding — Non-Model Ground at the research layer

When the input is two research tracks rather than two skills, the contention IS the mechanism: two
**time-decorrelated** anchors disagreeing exposes the agreement-bias gap that judge-only synthesis
hides (a single track, however strong, can be confidently wrong with nothing to contradict it). This is
a research-layer **partial analogue of Non-Model Ground** (`[[fh_propagation_nonmodel_ground]]`) — the
grounded track is a **time-decorrelated, provenance-bearing** anchor (written in a prior session against
recorded sources, so the present session's agreement-bias cannot silently overwrite it). It is **not** a
true non-model anchor: memory/CATALOG are model-written, so the independence is temporal + provenance,
not lineage. The honest bias-reduction is that contradicting a provenance-bearing past claim **forces an
explicit source check** (the challenger-verify pairing below) rather than a silent overwrite.

```
Open track (frontier):    deep-research / WebSearch — what the external world currently asserts
Grounded track (internal): memory + CATALOG + past-session recall — what we already established
  → AGREE      : low signal (corroboration) — log confidence, no harvest
  → DISAGREE   : HIGH signal — the open track may be newer (our claim is stale → memory-hygiene),
                 OR our grounded claim is right and the frontier is noise (→ a publishable delta).
                 Direction is a judged call; pair it with challenger-verify-before-act (source-verify
                 BEFORE rewriting either side — never let recency alone win) and route to harvest.
  → UNSUPPORTED: the open track asserts what the grounded track has no record of, and back-trace
                 (phantom-quench) finds no source → treat as Phantom, not as a new fact.
```

Dispatch shape: the two tracks run as independent calls (deep-research ∥ grounded recall — agent-composer
can parallelize), then their outputs enter Step 2 as source A / source B. The harvest gate below is unchanged.

## Step 2. Contention Essence — Harvest Gate

Determine whether the conflict will be resolved by **exclusion** or converted to **harvest**.

```
Question 1: Did the two skills produce different verdicts because they had different validation angles?
  → Yes: Harvest candidate ✅
  → No (bug / malfunction): Exclude → escalate to install-doctor

Question 2: If that tension is resolved, can it be absorbed into one of the existing skills?
  → Possible: Recommend improving existing skill (no new skill needed)
  → Not possible (new angle): New skill candidate ✅

Question 3: Can the candidate skill be transplanted to any project without a specific domain?
  → Transplantable: Route to commons plugin ✅
  → Domain-specific: Field harvest signal
```

Harvest Gate pass criteria: Question 1 ✅ + Question 2 not possible ✅ = new skill birth verdict

## Step 3. Placement Routing

| Skill nature | Routing path | Criterion |
|---|---|---|
| Harness engineering · install/audit/validation/onboarding | `fh-meta` candidate | Skills that operate/diagnose FH itself |
| Project-independent · transplantable anywhere · domain-agnostic | `commons` plugin | Universal utilities like validation angles or analysis frameworks |
| Specific domain/team/language/tech-stack | `field harvest` signal | Field team decision domain — not included in FH |

```
Routing conclusion:
  New skill name candidate: {name}
  Routing path: {fh-meta / commons / field}
  Rationale: {1-line nature verdict}
```

## Step 4. Generate SKILL.md Draft

After confirming routing path, auto-generate a new skill SKILL.md skeleton.

> **Reuse — need-driven scaffold**: this skeleton is also the template for Full-Harness Mode's
> field-asset scaffold (`auto_project_mapping.md §6`). There the entry is not a conflict but a
> **skill-worthy recurring pattern** (3+ reps · `#skill-candidate` · `field-harvest`); set
> `origin: field-scaffold` and replace `contention-parents` with the source pattern pointer. An
> **agent** variant emits `.claude/agents/{name}.md` (`name`/`description`/`tools` + self-contained
> prompt) instead of this SKILL.md frontmatter. The field team fills domain content; FH only scaffolds.

```markdown
---
name: {slug}
description: {one line — include trigger keywords, no marketing language}
user-invocable: true
allowed-tools: [...]

From chrono-meta/forge-harness, MIT.

More from chrono-meta/forge-harness

Signals

Stars
30
Forks
1
Open issues
2
Last commit (this folder)
Jul 12, 2026 (3 months 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

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