Not in the top 1,000 by GitHub stars

chrono-meta/forge-harness

FH is a meta-harness for Claude Code: it helps you build harnesses and skills — the rules, gates and memory a project needs — and checks them before they ship.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

plugins/fh-commons/skills/convergence-loop/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-commons/skills/deliberation/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-commons/skills/ko-tech-writer/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-commons/skills/mcp-circuit-breaker/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-commons/skills/persona-cast/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-commons/skills/standpoint-review/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-commons/skills/token-budget-gate/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/agent-composer/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/apex-review/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/asset-placement-gate/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/auto-decorrelation/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/contention-layer/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/context-doctor/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/corpus-grounding-expander/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/cross-ecosystem-synergy-detection/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/deep-clarify/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/dialogue-harvest/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/edit-manifest/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/fh/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/field-harvest/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/frontier-digest/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/goal-quench/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/harness-doctor/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/harness-pr-reviewer/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/harvest-loop/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/install-doctor/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/install-wizard/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/marketplace-gate/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/memory-hygiene/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/meta-prompt-builder/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/persona-roster-expander/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/phantom-quench/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/pipeline-conductor/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/plugin-recommender/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/prompt-regression/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/public-surface-audit/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/return-path-gate/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/salience-splitter/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/sim-conductor/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/steel-quench/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/verify-bidirectional/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-meta/skills/video-ingest/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-preprep/skills/preprep/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-qp/skills/qp/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-qp/skills/qp-plan/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-qp/skills/qp-regress/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

plugins/fh-qp/skills/qp-run/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

scripts/fixtures/cartridge/bad_enum/skills/demo/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

scripts/fixtures/cartridge/hook_cartridge/skills/demo/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

scripts/fixtures/cartridge/human_review/skills/demo/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

scripts/fixtures/cartridge/minimal_ok/skills/demo/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

scripts/fixtures/cartridge/no_manifest/skills/demo/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

scripts/fixtures/generated_harness/P1_r1/.claude/skills/harness/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

scripts/fixtures/generated_harness/P1_r1/.claude/skills/todo-dev/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

scripts/fixtures/generated_harness/P2_r2/.claude/skills/meeting-notes-organize/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

scripts/fixtures/generated_harness/P2_r2/.claude/skills/weekly-meeting-summary/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

scripts/fixtures/generated_harness/P2_r2/.claude/skills/weekly-summary-write/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

scripts/fixtures/generated_harness/P3_r1/.claude/skills/todo-dev/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

scripts/fixtures/generated_harness/P3_r2/.claude/skills/todo-dev-team/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

scripts/fixtures/generated_harness/P4_r2/.claude/skills/todo-dev/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

scripts/fixtures/generated_harness/P4_r2/.claude/skills/todo-orchestrator/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 86a7a68a70a3

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 86a7a68a70a3812c05713f64081ca42a5bfddaa8

git clone --filter=blob:none --no-checkout https://github.com/chrono-meta/forge-harness.git .hotskills/chrono-meta-forge-harness && git -C .hotskills/chrono-meta-forge-harness checkout --detach 86a7a68a70a3812c05713f64081ca42a5bfddaa8 # Copy each selected skill directory from .hotskills/chrono-meta-forge-harness into .claude/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/chrono-meta/forge-harness.git .hotskills/chrono-meta-forge-harness && git -C .hotskills/chrono-meta-forge-harness checkout --detach 86a7a68a70a3812c05713f64081ca42a5bfddaa8 # Copy each selected skill directory from .hotskills/chrono-meta-forge-harness into .agents/skills/<skill-name>/
31GitHub stars
1star in 7 days
61skills in this repository
182commits in 30 days

Heat

3.2
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 3, 202631

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

convergence-loop

When your agent uses it

A universal gate-reinforcement meta-skill that replaces the "single-pass = done" pattern with a converging loop of up to N rounds. Can be applied to any gate, checkpoint, or verification step. Only declares "truly passed" after FAIL→FIX→re-verify repeats until convergence (all items pass). Escalates to structural redesign if not converged within N rounds. Triggers on: "convergence-loop", "how many rounds do we need", "suspicious of single-pass", "not sure if it really passed", or equivalent phrasing.

What it loads into context

Frontmatter

171 tokens

Always available to the agent

SKILL.md

2,208 tokens

When the skill is activated

Reference documents

0 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Triggers
  2. Origin
  3. Applicable Targets
  4. Pipeline Structure
  5. Execution Guidelines
  6. Output Format
  7. Related Skills
  8. Done When
  9. External anchor (independent convergence)

Scripts executed separately

  • ../../../../scripts/gate_pathspec_check.sh
  • ../../../../scripts/package_coverage_check.sh

Files

  • ../../../../.claude-plugin/marketplace.jsonasset8,216 bytes
  • ../../../../.claude-plugin/marketplace.jsonasset8,216 bytes
  • ../../../../.claude-plugin/marketplace.jsonasset8,216 bytes
  • ../../../../.claude-plugin/marketplace.jsonasset8,216 bytes
  • ../../../../.claude-plugin/marketplace.jsonasset8,216 bytes
  • ../../../../.claude-plugin/marketplace.jsonasset8,216 bytes
  • ../../.claude-plugin/plugin.jsonasset769 bytes
  • SKILL.mdcore9,200 bytes
  • ../../../fh-meta/.claude-plugin/plugin.jsonasset6,570 bytes
  • ../../../fh-meta/.claude-plugin/plugin.jsonasset6,570 bytes
  • ../../../fh-meta/.claude-plugin/plugin.jsonasset6,570 bytes
  • ../../../fh-meta/.claude-plugin/plugin.jsonasset6,570 bytes
  • ../../../fh-meta/.claude-plugin/plugin.jsonasset6,570 bytes
  • ../../../fh-meta/.claude-plugin/plugin.jsonasset6,570 bytes
  • ../../../fh-meta/.claude-plugin/plugin.jsonasset6,570 bytes
  • ../../../fh-preprep/.claude-plugin/plugin.jsonasset1,280 bytes
  • ../../../fh-qp/.claude-plugin/plugin.jsonasset733 bytes
  • ../../../../scripts/fixtures/cartridge/bad_enum/.claude-plugin/plugin.jsonasset41 bytes
  • ../../../../scripts/fixtures/cartridge/hook_cartridge/.claude-plugin/plugin.jsonasset47 bytes
  • ../../../../scripts/fixtures/cartridge/hook_cartridge/hooks/hooks.jsonasset30 bytes
  • ../../../../scripts/fixtures/cartridge/human_review/.claude-plugin/plugin.jsonasset45 bytes
  • ../../../../scripts/fixtures/cartridge/minimal_ok/.claude-plugin/plugin.jsonasset43 bytes
  • ../../../../scripts/fixtures/cartridge/no_manifest/.claude-plugin/plugin.jsonasset44 bytes
  • ../../../../scripts/gate_pathspec_check.shruns15,316 bytes
  • ../../../../scripts/package_coverage_check.shruns52,448 bytes
Read SKILL.md

# convergence-loop — Universal Convergence Loop Gate Reinforcement

> A single pass declaration is hard to trust. A fix exposes new FAILs, and round 2 catches what round 1 missed. convergence-loop assigns a "truly passed" criterion to any gate.

## Triggers

- `/convergence-loop`
- "convergence-loop", "how many rounds do we need", "not sure if it really passed"
- "suspicious of single-pass", "run until it passes", "keep verifying until clean"
- "single pass isn't enough", "need another round", "the fix might have introduced new issues"
- Auto-proposed: when the same artifact receives a FAIL verdict 2+ times in the same session (observable: 2nd FAIL on identical scope)

---
View the complete source on GitHub

Skills included

  • convergence-loop
  • deliberation
  • ko-tech-writer
  • mcp-circuit-breaker
  • persona-cast
  • standpoint-review
  • token-budget-gate
  • agent-composer
  • apex-review
  • asset-placement-gate
  • auto-decorrelation
  • contention-layer
  • context-doctor
  • corpus-grounding-expander
  • cross-ecosystem-synergy-detection
  • deep-clarify
  • dialogue-harvest
  • edit-manifest
  • fh
  • field-harvest
  • frontier-digest
  • goal-quench
  • harness-doctor
  • harness-pr-reviewer
  • harvest-loop
  • install-doctor
  • install-wizard
  • marketplace-gate
  • memory-hygiene
  • meta-prompt-builder
  • persona-roster-expander
  • phantom-quench
  • pipeline-conductor
  • plugin-recommender
  • prompt-regression
  • public-surface-audit
  • return-path-gate
  • salience-splitter
  • sim-conductor
  • steel-quench
  • verify-bidirectional
  • video-ingest
  • preprep
  • qp
  • qp-plan
  • qp-regress
  • qp-run
  • demo
  • demo
  • demo
  • demo
  • demo
  • harness
  • todo-dev
  • meeting-notes-organize
  • weekly-meeting-summary
  • weekly-summary-write
  • todo-dev
  • todo-dev-team
  • todo-dev
  • todo-orchestrator

Repository facts

License
MIT
Created
May 26, 2026
Last pushed
Nov 7, 2026
Forks
1
Open issues
2
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 397 notes
  • .claude-plugin/marketplace.json:15 Analysis incomplete: physical or joined line exceeds character limit
  • .claude-plugin/marketplace.json:13 Analysis incomplete: physical or joined line exceeds character limit
  • .claude-plugin/marketplace.json:14 Analysis incomplete: physical or joined line exceeds character limit
  • .claude-plugin/marketplace.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • .claude-plugin/marketplace.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • .claude-plugin/marketplace.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • .claude-plugin/marketplace.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • .claude-plugin/marketplace.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/fh-meta/.claude-plugin/plugin.json:7 Analysis incomplete: physical or joined line exceeds character limit
  • plugins/fh-meta/.claude-plugin/plugin.json:5 Analysis incomplete: physical or joined line exceeds character limit
  • plugins/fh-meta/.claude-plugin/plugin.json:6 Analysis incomplete: physical or joined line exceeds character limit
  • plugins/fh-meta/.claude-plugin/plugin.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/fh-meta/.claude-plugin/plugin.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/fh-meta/.claude-plugin/plugin.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/fh-meta/.claude-plugin/plugin.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/fh-meta/.claude-plugin/plugin.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/fh-meta/.claude-plugin/plugin.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • .claude-plugin/marketplace.json:15 Plugin-wide analysis incomplete; see repository notes
  • plugins/fh-commons/skills/ko-tech-writer/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/fh-commons/skills/ko-tech-writer/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 677 signals by file

knowledge/shared/harness-core/harness_frontier_diagnosis_2026-06-02.md

  • Network accessline 12
    > Identity ② asset (`harness_frontier_diagnosis_*.md`). Collects the global AI/harness-engineering > frontier and **translates it for FH operations** — anchored on FH's three identities + Core Axis. > Engine: WebSearch (no `ANTHROPIC_API_KE
  • Network accessline 14
    [Credential-related source omitted]
  • Access to secretsline 14
    [Credential-related source omitted]
  • Network accessline 89
    - Epsilla — *The Third Evolution: Why Harness Engineering Replaced Prompting in 2026* — https://www.epsilla.com/blogs/harness-engineering-evolution-prompt-context-autonomous-agents
  • Network accessline 90
    - Faros.ai — *Harness Engineering: Making AI Coding Agents Work in 2026* — https://www.faros.ai/blog/harness-engineering
  • Network accessline 91
    - Adnan Masood — *Agent Harness Engineering — The Rise of the AI Control Plane* — https://medium.com/@adnanmasood/agent-harness-engineering-the-rise-of-the-ai-control-plane-938ead884b1d
  • Network accessline 92
    - getstream.io — *Top AI Agent Protocols in 2026 — MCP, A2A, ACP & More* — https://getstream.io/blog/ai-agent-protocols/
  • Network accessline 93
    - Zylos Research — *Agent Interoperability Protocols 2026: MCP, A2A, ACP and the Path to Convergence* — https://zylos.ai/research/2026-03-26-agent-interoperability-protocols-mcp-a2a-acp-convergence
  • Network accessline 94
    - codebridge.tech — *Multi-Agent Systems & AI Orchestration Guide 2026* — https://www.codebridge.tech/articles/mastering-multi-agent-orchestration-coordination-is-the-new-scale-frontier
  • Network accessline 95
    - Micheal Lanham — *Multi-Agent in Production in 2026: What Actually Survived* — https://medium.com/@Micheal-Lanham/multi-agent-in-production-in-2026-what-actually-survived-f86de8bb1cd1
  • Network accessline 96
    - Inference Weekly — *Agentic Harness Engineering (AHE): Evolving Coding-Agent Harnesses with Observability-Driven Automation* — https://medium.com/@harshit.sinha0910/agentic-harness-engineering-ahe-evolving-coding-agent-harnesses-with-obse
  • Network accessline 97
    - Observability-Driven Automatic Evolution of Coding-Agent Harnesses — https://arxiv.org/pdf/2604.25850
  • Network accessline 98
    - TokenMix — *LLM Context Window 2026: 128K to 10M Tokens* — https://tokenmix.ai/blog/llm-context-window-explained
  • Network accessline 99
    - dasroot.net — *Token Optimization Strategies for Cost-Effective LLM Applications* — https://dasroot.net/posts/2026/04/token-optimization-llm-costs-prompt-engineering/

plugins/fh-commons/skills/convergence-loop/SKILL.md

plugins/fh-commons/skills/deliberation/SKILL.md

plugins/fh-commons/skills/ko-tech-writer/SKILL.md

plugins/fh-commons/skills/mcp-circuit-breaker/SKILL.md

plugins/fh-commons/skills/persona-cast/SKILL.md

  • Network accessline 170
    ## Provenance (Sister Asset) Seed vocabulary for five of the six lenses: [wshobson/agents](https://github.com/wshobson/agents)
  • Network accessline 171
    Seed vocabulary for five of the six lenses: [wshobson/agents](https://github.com/wshobson/agents)

plugins/fh-commons/skills/token-budget-gate/SKILL.md

plugins/fh-meta/references/fallback-guide.md

  • Network accessline 96
    1. **Internal**: search `<your-ghe-url>` → browse your organization's repos 2. **External**: `https://github.com/search?q=claude+plugin+{keyword}` direct search
  • Network accessline 96
    1. **Internal**: search `<your-ghe-url>` → browse your organization's repos 2. **External**: `https://github.com/search?q=claude+plugin+{keyword}` direct search
  • Network accessline 96
    1. **Internal**: search `<your-ghe-url>` → browse your organization's repos 2. **External**: `https://github.com/search?q=claude+plugin+{keyword}` direct search
  • Network accessline 96
    1. **Internal**: search `<your-ghe-url>` → browse your organization's repos 2. **External**: `https://github.com/search?q=claude+plugin+{keyword}` direct search
  • Network accessline 97
    2. **External**: `https://github.com/search?q=claude+plugin+{keyword}` direct search
  • Network accessline 97
    2. **External**: `https://github.com/search?q=claude+plugin+{keyword}` direct search
  • Network accessline 97
    2. **External**: `https://github.com/search?q=claude+plugin+{keyword}` direct search
  • Network accessline 97
    2. **External**: `https://github.com/search?q=claude+plugin+{keyword}` direct search

plugins/fh-meta/skills/agent-composer/SKILL.md

  • Broad permissionsline 1
    Bash
  • Dangerous shell operationline 243
    | File/data destruction | rm -rf, DB DROP/DELETE, file overwrite, branch delete |

plugins/fh-meta/skills/agent-composer/SKILL_detail.md

  • Network accessline 464
    > Architecture basis: Anthropic [Harness Design for Long-Running Apps](https://www.anthropic.com/engineering/harness-design-long-running-apps) — single agent ($9, fails) vs. multi-agent harness ($200, perfect). Cost gap justified by quality

plugins/fh-meta/skills/apex-review/SKILL.md

plugins/fh-meta/skills/asset-placement-gate/SKILL.md

  • Broad permissionsline 1
    Bash
  • Network accessline 113
    **External grounding (2026-09-14 frontier signal, citation verified live before inclusion)**: Saha, Faghih & Feizi, *"Under the Hood of SKILL.md: Semantic Supply-chain Attacks on AI Agent Skill Registry"* (arXiv:2605.11418, May 2026 — https
  • Network accessline 114
    Faghih & Feizi, *"Under the Hood of SKILL.md: Semantic Supply-chain Attacks on AI Agent Skill Registry"* (arXiv:2605.11418, May 2026 — https://arxiv.org/abs/2605.11418). Using real registry mechanisms (not a hypothetical), it measures SKILL
  • Network accessline 115
    Registry"* (arXiv:2605.11418, May 2026 — https://arxiv.org/abs/2605.11418). Using real registry

plugins/fh-meta/skills/auto-decorrelation/SKILL.md

  • Broad permissionsline 1
    Bash
  • Network accessline 99
    # `"models"` grep rejects a non-ollama server or an empty/overloaded instance — else a dead box reports # live (false-positive discovery). Endpoints are only ever curl-probed here, never eval'd. probe() { curl -fsS -m"${2:-6}" "http://$1/ap
  • Network accessline 100
    # live (false-positive discovery). Endpoints are only ever curl-probed here, never eval'd. probe() { curl -fsS -m"${2:-6}" "http://$1/api/tags" 2>/dev/null | grep -q '"models"'; } probe localhost:11434 && echo "ollama-local(mac)"
  • Network accessline 101
    probe() { curl -fsS -m"${2:-6}" "http://$1/api/tags" 2>/dev/null | grep -q '"models"'; }

plugins/fh-meta/skills/contention-layer/SKILL.md

plugins/fh-meta/skills/context-doctor/SKILL.md

  • Broad permissionsline 1
    Bash
  • Network accessline 27
    **Built-in `/doctor` first (sister anchor, 2026-07-25)**: since the Claude 5 generation, the official `/doctor` command claims skill/CLAUDE.md rightsizing ("The new rules of context engineering for Claude 5 generation models" — https://clau
  • Network accessline 28
    `/doctor` command claims skill/CLAUDE.md rightsizing ("The new rules of context engineering for Claude 5 generation models" — https://claude.com/blog/the-new-rules-of-context-engineering-for-claude-5-generation-models). Run the built-in fir
  • Network accessline 29
    generation models" — https://claude.com/blog/the-new-rules-of-context-engineering-for-claude-5-generation-models).

plugins/fh-meta/skills/context-doctor/SKILL_detail.md

  • Network accessline 171
    The compression pass in SKILL.md is tool-agnostic, but a concrete, reversible, local-first implementation exists: **Headroom** (`github.com/chopratejas/headroom`, open source, v0.22). It compresses tool outputs, logs, files, and RAG chunks 

plugins/fh-meta/skills/corpus-grounding-expander/SKILL.md

  • Broad permissionsline 1
    Bash
  • Network accessline 37
    1. **Source + license check** — identify the public-domain source(s) and confirm each is genuinely    free to redistribute. Record the license literally (no assumption). 2. **Fetch (retry-disciplined)** — pull each version; on transient err
  • Network accessline 38
    free to redistribute. Record the license literally (no assumption). 2. **Fetch (retry-disciplined)** — pull each version; on transient error, backoff-retry before    declaring the source unavailable (do not silently drop a version).
  • Network accessline 39
    2. **Fetch (retry-disciplined)** — pull each version; on transient error, backoff-retry before

plugins/fh-meta/skills/cross-ecosystem-synergy-detection/SKILL.md

plugins/fh-meta/skills/deep-clarify/SKILL.md

plugins/fh-meta/skills/edit-manifest/SKILL.md

plugins/fh-meta/skills/field-harvest/SKILL.md

plugins/fh-meta/skills/frontier-digest/SKILL.md

  • Broad permissionsline 1
    Bash
  • Access to secretsline 41
    [Credential-related source omitted]
  • Network accessline 86
    > **Detail**: See `SKILL_detail.md §Collection-Bash` — curl commands per source with parsing notes — read when executing Step 1.
  • Network accessline 204
    | With `--save` flag: `✅ Saved: {path}` confirmed **and the file resolves under the cadence glob** `tracks/_meta/frontier_digest_*.md` | **measured** — `ls` the written path in the same run; a `✅ Saved:` line without a resolving file is a F
  • Network accessline 205
    | With `--chain` flag: persona-innovator Mode E **proposed (awaiting approval)** + field-harvest proposed | **mandatory-pass** — the proposal line was emitted **and no invocation occurred before approval**. Both halves are required: an *inv
  • Network accessline 206
    | All curl failures → fallback to WebSearch synthesis output | **mandatory-pass** — fallback output present, and the collection stats line reports the failed legs rather than rendering them as zero items | ✅ Fallback complete |
  • Network accessline 225
    - Video Tier-3 probe fails (any of `yt-dlp` / `curl_cffi` / `ffmpeg` missing, or timedtext returns 429) → fall through to operator summary; never assume `yt-dlp` works - 🟢 **arxiv transport, inverted 2026-09-12 (operator decision, condition
  • Network accessline 226
    - 🟢 **arxiv transport, inverted 2026-09-12 (operator decision, condition met: 429 on 09-09·10·11·12)**: the **date-sorted `arxiv.org/list/cs.SE/recent` listing is PRIMARY**; the export API is the **fallback**; HN-only only if both fail. Sam
  • Network accessline 227
    - On curl timeout, skip that item and continue with the rest
  • Network accessline 237
    [Credential-related source omitted]
  • Access to secretsline 237
    [Credential-related source omitted]
  • Network accessline 239
    | All curl blocked | WebSearch mode forced |

plugins/fh-meta/skills/frontier-digest/SKILL_detail.md

  • Network accessline 15
    > **Execution form — canonical (revised 2026-08-10, operator decision ⓑ).** The default runtime path > is **WebFetch (+WebSearch) against the endpoints below** — not `curl`. Measured: **13 consecutive > unattended runs** executed via WebFet
  • Network accessline 16
    > is **WebFetch (+WebSearch) against the endpoints below** — not `curl`. Measured: **13 consecutive > unattended runs** executed via WebFetch while this section documented only the curl form (the digest > reported the mismatch on every run 
  • Network accessline 17
    > unattended runs** executed via WebFetch while this section documented only the curl form (the digest
  • Network accessline 19
    > default install does not carry; the bash blocks below are kept as the **endpoint/parameter spec** > (query shapes, filters, item caps, refresh rules — all still authoritative), and a run applies them > through WebFetch on the same URLs. I
  • Network accessline 20
    > (query shapes, filters, item caps, refresh rules — all still authoritative), and a run applies them > through WebFetch on the same URLs. If an environment *does* allow the curl form, it is equivalent — > the transport is not the contract,
  • Network accessline 21
    > through WebFetch on the same URLs. If an environment *does* allow the curl form, it is equivalent —
  • Network accessline 32
    > check). An honest identifying UA (`forge-harness-digest/<version>`) on the first request is fine; > swapping it after a refusal is not. If a refused source matters that day, it goes to Step 0.5 as an > operator hand-in. When the curl form
  • Network accessline 33
    > swapping it after a refusal is not. If a refused source matters that day, it goes to Step 0.5 as an > operator hand-in. When the curl form is used, the progress line names the UA the leg sent. >
  • Network accessline 34
    > operator hand-in. When the curl form is used, the progress line names the UA the leg sent.
  • Network accessline 48
    > past the `N≥3` bar twice over. Paying two failed calls plus a backoff every single day to reach > items that the listing reaches anyway is not a fallback, it is a toll. New order: > 1. **PRIMARY — WebFetch the date-sorted HTML listing** `
  • Network accessline 49
    > items that the listing reaches anyway is not a fallback, it is a toll. New order: > 1. **PRIMARY — WebFetch the date-sorted HTML listing** `https://arxiv.org/list/cs.SE/recent` >    (and `https://arxiv.org/list/cs.AI/recent` if the first 
  • Network accessline 50
    > 1. **PRIMARY — WebFetch the date-sorted HTML listing** `https://arxiv.org/list/cs.SE/recent`
  • Network accessline 51
    >    (and `https://arxiv.org/list/cs.AI/recent` if the first is empty of agent/harness items), keep
  • Network accessline 93
    for KW in "AI agent" "LLM harness" "Claude" "multi-agent" "context engineering"; do   curl -s --max-time 8 \
  • Network accessline 94
    curl -s --max-time 8 \
  • Network accessline 95
    "https://hn.algolia.com/api/v1/search_by_date?query=$(echo $KW | tr ' ' '+')&tags=story&hitsPerPage=5&numericFilters=points>30"
  • Network accessline 115
    # could not catch it. for Q in "LLM agent" "agent harness" "context engineering"; do   curl -s --max-time 8 \
  • Network accessline 116
    for Q in "LLM agent" "agent harness" "context engineering"; do   curl -s --max-time 8 \     "https://export.arxiv.org/api/query?search_query=cat:cs.SE+AND+all:%22${Q// /+}%22&max_results=2&sortBy=submittedDate&sortOrder=descending"
  • Network accessline 117
    curl -s --max-time 8 \
  • Network accessline 118
    "https://export.arxiv.org/api/query?search_query=cat:cs.SE+AND+all:%22${Q// /+}%22&max_results=2&sortBy=submittedDate&sortOrder=descending"
  • Network accessline 143
    curl -s --max-time 8 "https://tldr.tech/api/rss/ai"
  • Network accessline 151
    curl -s --max-time 10 -L "https://www.deeplearning.ai/the-batch"
  • Network accessline 155
    2026-07-26); the 07-26 automated run read that 308 as a dead endpoint and skipped the leg. The slash-less URL returns 200 directly, so the leg no longer depends on redirect-following at all — which matters because the fetch path is not alwa
  • Network accessline 156
    URL returns 200 directly, so the leg no longer depends on redirect-following at all — which matters because the fetch path is not always `curl -L` (a WebFetch-based run does not follow redirects the same way). Second collection endpoint to 
  • Network accessline 157
    because the fetch path is not always `curl -L` (a WebFetch-based run does not follow redirects the same
  • Network accessline 165
    curl -s --max-time 15 -L "https://www.deeplearning.ai/the-batch" \
  • Network accessline 170
    `aria-label` = title · `href` = `/the-batch/issue-NNN` → URL `https://www.deeplearning.ai{href}`. Max 5 items.
  • Network accessline 182
    curl -s --max-time 8 "https://news.hada.io/rss/news"
  • Network accessline 195
    - **Launch YC (`launch-yc`)**: `https://www.ycombinator.com/launches` — newest launches; keep AI/agent/dev-tool ones. Cite the launch URL. ⚠<U+FE0F> 2026-10-17: HTTP 200 but a 16 KB JS-rendered shell, 0 entries via curl → read it with WebFetch (re
  • Network accessline 196
    - **Product Hunt (`product-hunt`)**: official Atom feed `https://www.producthunt.com/feed` (2026-10-17: 200, 50 `<entry>`). ⚠<U+FE0F> the `?category=` parameter returned a byte-near-identical feed, so it is not shown to filter — filter by keyword 
  • Network accessline 197
    - **Show HN (`show-hn`)**: `'https://hn.algolia.com/api/v1/search_by_date?tags=show_hn&query=<KW>&hitsPerPage=8&numericFilters=points%3E10'` (quoted; 2026-10-17: 200, 8 hits for «agent») for the same keywords as the HN leg. Cite the HN item
  • Network accessline 199
    - **Vendor changelogs/blogs (`vendor-changelogs`)**: Feeds: OpenAI `https://openai.com/news/rss.xml` (200, RSS) · Google DeepMind `https://deepmind.google/blog/rss.xml` (200, RSS). HTML pages, no feed found (200, parse with WebFetch): Anthr
  • Access to secretsline 345
    [Credential-related source omitted]
  • Access to secretsline 348
    [Credential-related source omitted]

plugins/fh-meta/skills/goal-quench/SKILL.md

plugins/fh-meta/skills/harness-doctor/SKILL.md

plugins/fh-meta/skills/harness-pr-reviewer/SKILL.md

plugins/fh-meta/skills/harvest-loop/SKILL.md

plugins/fh-meta/skills/install-doctor/SKILL.md

plugins/fh-meta/skills/install-wizard/SKILL.md

  • Broad permissionsline 1
    Bash
  • Network accessline 20
    > **Manual fallback (if needed):** > ```bash > claude plugin marketplace add https://github.com/chrono-meta/forge-harness.git
  • Network accessline 21
    > ```bash > claude plugin marketplace add https://github.com/chrono-meta/forge-harness.git > claude plugin install -s user fh-meta@forge-harness
  • Network accessline 22
    > claude plugin marketplace add https://github.com/chrono-meta/forge-harness.git

plugins/fh-meta/skills/install-wizard/SKILL_detail.md

  • Network accessline 44
    Quick setup (remote-backed):         gh repo create {org}/{hub}-be --private         git clone https://github.com/{org}/{hub}-be ~/path/to/{hub}-be
  • Network accessline 45
    gh repo create {org}/{hub}-be --private         git clone https://github.com/{org}/{hub}-be ~/path/to/{hub}-be         mkdir -p {hub}-be/{paper-drafts,paper-signals,digests,handoff}
  • Network accessline 46
    git clone https://github.com/{org}/{hub}-be ~/path/to/{hub}-be
  • Access to secretsline 192
    [Credential-related source omitted]
  • Access to secretsline 193
    [Credential-related source omitted]
  • Access to secretsline 200
    [Credential-related source omitted]
  • Network accessline 264
    # Confirm the RESPONSE SHAPE, not just any HTTP 200 — Ollama /api/tags returns {"models":...}, # LM Studio /v1/models returns {"data":...}; this avoids a non-LLM service squatting the port. for url in http://localhost:11434/api/tags http://
  • Network accessline 265
    # LM Studio /v1/models returns {"data":...}; this avoids a non-LLM service squatting the port. for url in http://localhost:11434/api/tags http://localhost:1234/v1/models; do   if curl -sf -m 1 "$url" 2>/dev/null | grep -q '"models"\|"data"'
  • Network accessline 266
    for url in http://localhost:11434/api/tags http://localhost:1234/v1/models; do   if curl -sf -m 1 "$url" 2>/dev/null | grep -q '"models"\|"data"'; then     echo "Local LLM runtime: detected ($url)"; break
  • Network accessline 267
    if curl -sf -m 1 "$url" 2>/dev/null | grep -q '"models"\|"data"'; then
  • Network accessline 277
    1. Clone FH repo:      git clone https://github.com/chrono-meta/forge-harness ~/forge-harness
  • Network accessline 278
    git clone https://github.com/chrono-meta/forge-harness ~/forge-harness
  • Network accessline 429
    [5] Install fh-meta plugin — activate all FH skills (if FH plugin MISS)       AI executes automatically via Bash — no manual terminal input needed:         claude plugin marketplace add https://github.com/chrono-meta/forge-harness.git
  • Network accessline 430
    AI executes automatically via Bash — no manual terminal input needed:         claude plugin marketplace add https://github.com/chrono-meta/forge-harness.git         claude plugin install -s user fh-meta@forge-harness
  • Network accessline 431
    claude plugin marketplace add https://github.com/chrono-meta/forge-harness.git
  • Network accessline 445
    Effect: Each skill references common environment context → eliminate individual setting duplication   [9] Install phantom-gate — AI output hallucination detection (Python + AI-output projects only, if MISS)       Run: pip install git+https:
  • Network accessline 446
    [9] Install phantom-gate — AI output hallucination detection (Python + AI-output projects only, if MISS)       Run: pip install git+https://github.com/chrono-meta/phantom-gate.git       Usage: phantom-gate scan output.txt / phantom-gate sca
  • Network accessline 447
    Run: pip install git+https://github.com/chrono-meta/phantom-gate.git
  • Network accessline 487
    # Step A: register marketplace (idempotent — "already on disk" is OK) claude plugin marketplace add https://github.com/chrono-meta/forge-harness.git 2>&1
  • Network accessline 488
    claude plugin marketplace add https://github.com/chrono-meta/forge-harness.git 2>&1
  • Dangerous shell operationline 745
    FH_NODE_STATE="$_T" bash "$FH_DIR/scripts/fh_node_check.sh"; rm -f "$_T"
  • Network accessline 798
    Pattern discovered → return with /field-harvest    New skill proposal → PR:      https://github.com/chrono-meta/forge-harness
  • Network accessline 800
    https://github.com/chrono-meta/forge-harness

plugins/fh-meta/skills/marketplace-gate/SKILL.md

  • Broad permissionsline 1
    Bash
  • Access to secretsline 149
    [Credential-related source omitted]

plugins/fh-meta/skills/memory-hygiene/SKILL.md

plugins/fh-meta/skills/meta-prompt-builder/SKILL.md

plugins/fh-meta/skills/phantom-quench/SKILL.md

  • Broad permissionsline 1
    Bash
  • Network accessline 205
    **Procedure** (per external-cited claim): 1. **Resolve the identifier (mechanical / measured)**: normalize the citation to a fetchable URL    (`arXiv:NNNN.NNNNN` → `https://arxiv.org/abs/NNNN.NNNNN`; bare DOI → `https://doi.org/…`). If the
  • Network accessline 206
    1. **Resolve the identifier (mechanical / measured)**: normalize the citation to a fetchable URL    (`arXiv:NNNN.NNNNN` → `https://arxiv.org/abs/NNNN.NNNNN`; bare DOI → `https://doi.org/…`). If the    artifact names a source *without* a URL
  • Network accessline 207
    (`arXiv:NNNN.NNNNN` → `https://arxiv.org/abs/NNNN.NNNNN`; bare DOI → `https://doi.org/…`). If the
  • Network accessline 208
    artifact names a source *without* a URL ("paper X shows Y"), use **one** `WebSearch` to locate the    canonical source, then proceed — do not verify against the search snippet alone. 2. **Fetch (mechanical)**: `WebFetch` the resolved URL wi
  • Network accessline 209
    canonical source, then proceed — do not verify against the search snippet alone. 2. **Fetch (mechanical)**: `WebFetch` the resolved URL with a prompt that asks *only* for a span **and its    polarity** — "quote the span that states <the exa
  • Network accessline 210
    2. **Fetch (mechanical)**: `WebFetch` the resolved URL with a prompt that asks *only* for a span **and its

plugins/fh-meta/skills/phantom-quench/SKILL_detail.md

  • Network accessline 107
    | Citation form | Resolved URL | |---|---| | `arXiv:NNNN.NNNNN` / `arXiv:NNNN.NNNNNvK` | `https://arxiv.org/abs/NNNN.NNNNN` (abstract — the **canonical identifier** surface). For a section-/body-cited claim, prefer full text **first**, fall
  • Network accessline 108
    |---|---| | `arXiv:NNNN.NNNNN` / `arXiv:NNNN.NNNNNvK` | `https://arxiv.org/abs/NNNN.NNNNN` (abstract — the **canonical identifier** surface). For a section-/body-cited claim, prefer full text **first**, falling back in order `https://arxiv.
  • Network accessline 109
    | `arXiv:NNNN.NNNNN` / `arXiv:NNNN.NNNNNvK` | `https://arxiv.org/abs/NNNN.NNNNN` (abstract — the **canonical identifier** surface). For a section-/body-cited claim, prefer full text **first**, falling back in order `https://arxiv.org/html/N
  • Network accessline 110
    | bare DOI `10.xxxx/...` | `https://doi.org/10.xxxx/...` |
  • Network accessline 320
    Audit scope: {artifact file} / source {N files} Axes traced: {claim classes actually traced — e.g. 경로 참조 · 인용 · 버전 주장} / not run: {e.g. 외부 fetch(Step 2-E)}
  • Network accessline 321
    Axes traced: {claim classes actually traced — e.g. 경로 참조 · 인용 · 버전 주장} / not run: {e.g. 외부 fetch(Step 2-E)}

plugins/fh-meta/skills/pipeline-conductor/SKILL.md

plugins/fh-meta/skills/plugin-recommender/SKILL.md

  • Broad permissionsline 1
    Bash
  • Network accessline 80
    **Verified external search targets (as of 2026-05):**    - [`anthropics/claude-plugins-official`](https://github.com/anthropics/claude-plugins-official) — Anthropic-curated official plugin directory. Search here first for any task domain.
  • Network accessline 81
    - [`anthropics/claude-plugins-official`](https://github.com/anthropics/claude-plugins-official) — Anthropic-curated official plugin directory. Search here first for any task domain.
  • Network accessline 82
    - [`Chat2AnyLLM/awesome-claude-plugins`](https://github.com/Chat2AnyLLM/awesome-claude-plugins) — Community aggregator: 75+ marketplaces, 1,196+ plugins catalogued (2026-05-25). Use for broad discovery.
  • Network accessline 83
    - [`anthropics/claude-code/plugins/`](https://github.com/anthropics/claude-code/tree/main/plugins) — Anthropic first-party plugins bundled with Claude Code (e.g., `code-review` with 5 parallel Sonnet agents).
  • Network accessline 153
    - **Recommendations, not guarantees**: Does not guarantee plugin performance, stability, or security. - **Inbound supply-chain risk — EVERY tier, not just 3/4**: public skill registries have shipped malicious skills at scale (pointers: [HN 
  • Network accessline 154
    - **Inbound supply-chain risk — EVERY tier, not just 3/4**: public skill registries have shipped malicious skills at scale (pointers: [HN 47370624](https://news.ycombinator.com/item?id=47370624) — 824 malicious skills reported on ClawHub; [

plugins/fh-meta/skills/plugin-recommender/SKILL_detail.md

  • Network accessline 33
    # 1. Generate PAT at https://github.com/settings/tokens

plugins/fh-meta/skills/prompt-regression/SKILL.md

plugins/fh-meta/skills/public-surface-audit/SKILL.md

plugins/fh-meta/skills/public-surface-audit/SKILL_detail.md

  • Dangerous shell operationline 137
    echo "TRACKED $f (already committed — Step 3 scans its contents; un-track if it must be private: git rm --cached)"

plugins/fh-meta/skills/return-path-gate/SKILL.md

plugins/fh-meta/skills/salience-splitter/SKILL.md

plugins/fh-meta/skills/sim-conductor/SKILL.md

plugins/fh-meta/skills/steel-quench/SKILL.md

  • Broad permissionsline 1
    Bash
  • Dangerous shell operationline 379
    # feed "$P3R" to Wave-P3; clean up after: rm -f "$P3R"
  • Dangerous shell operationline 382
    Feed `$P3R` to Wave-P3, then `rm -f "$P3R"`. The redaction is mechanical, so it cannot itself be
  • Dangerous shell operationline 601
    accepted over-blocks in the PR body (FoD #80 delete outside the working folder: `echo rm …`,
  • Dangerous shell operationline 602
    `git rm`, `rm x # /path` · #81 writes to the user settings file: `jq … > tmp && mv`, quoted `>`,

plugins/fh-meta/skills/verify-bidirectional/SKILL.md

plugins/fh-meta/skills/video-ingest/SKILL.md

plugins/fh-preprep/skills/preprep/SKILL.md

plugins/fh-preprep/skills/preprep/diagram_from_json.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 54
    [Credential-related source omitted]
  • Access to secretsline 55
    [Credential-related source omitted]
  • Access to secretsline 62
    [Credential-related source omitted]

plugins/fh-preprep/skills/preprep/fixtures/font_revert_probe.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/fh-preprep/skills/preprep/fixtures/mk_slide_fixtures.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/fh-preprep/skills/preprep/interslide_deps.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/fh-preprep/skills/preprep/lane_adjacent_dup.py

  • Executable scriptline 1
    Executable file

plugins/fh-preprep/skills/preprep/lane_attr_consistency.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/fh-preprep/skills/preprep/lane_diagram.py

  • Executable scriptline 1
    Executable file

plugins/fh-preprep/skills/preprep/lane_font.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Dangerous shell operationline 206
    for rm in re.finditer(r'<Relationship\b[^>]*/?>',
  • Network accessline 305
    _DML_NS = 'http://schemas.openxmlformats.org/drawingml/2006/main'

plugins/fh-preprep/skills/preprep/lane_font_embed.py

  • Executable scriptline 1
    Executable file

plugins/fh-preprep/skills/preprep/lane_geometry.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/fh-preprep/skills/preprep/lane_progression.py

  • Executable scriptline 1
    Executable file

plugins/fh-preprep/skills/preprep/lane_promise.py

  • Executable scriptline 1
    Executable file

plugins/fh-preprep/skills/preprep/lane_screen_parity.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/fh-preprep/skills/preprep/lane_slide_refs.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/fh-preprep/skills/preprep/lane_slide_relations.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/fh-preprep/skills/preprep/lane_speech_coach.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 744
    [Credential-related source omitted]

plugins/fh-preprep/skills/preprep/oox.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 170
    KNOWN_NS = {     'http://schemas.openxmlformats.org/presentationml/2006/main',
  • Network accessline 171
    'http://schemas.openxmlformats.org/presentationml/2006/main',
  • Network accessline 172
    'http://schemas.openxmlformats.org/drawingml/2006/main',
  • Network accessline 173
    'http://schemas.openxmlformats.org/officeDocument/2006/relationships',
  • Network accessline 174
    'http://schemas.openxmlformats.org/markup-compatibility/2006',
  • Network accessline 175
    'http://schemas.microsoft.com/office/powerpoint/2010/main',
  • Network accessline 176
    'http://schemas.microsoft.com/office/powerpoint/2012/main',
  • Network accessline 177
    'http://schemas.microsoft.com/office/drawing/2010/main',
  • Network accessline 178
    'http://schemas.microsoft.com/office/drawing/2014/main',

plugins/fh-preprep/skills/preprep/ooxml/gate.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 25
    [Credential-related source omitted]
  • Network accessline 38
    _unmeasured('pptx 필수 부품 없음:',_missing,                 '· docProps/app.xml 이 없으면 python-pptx 재저장을 의심해라(통짜로 떨어뜨린다)') ok=True; P='http://schemas.openxmlformats.org/presentationml/2006/main'
  • Network accessline 39
    '· docProps/app.xml 이 없으면 python-pptx 재저장을 의심해라(통짜로 떨어뜨린다)') ok=True; P='http://schemas.openxmlformats.org/presentationml/2006/main' _A='http://schemas.openxmlformats.org/drawingml/2006/main'
  • Network accessline 40
    ok=True; P='http://schemas.openxmlformats.org/presentationml/2006/main'
  • Network accessline 41
    _A='http://schemas.openxmlformats.org/drawingml/2006/main'
  • Network accessline 96
    _A='http://schemas.openxmlformats.org/drawingml/2006/main'
  • Access to secretsline 164
    [Credential-related source omitted]

plugins/fh-preprep/skills/preprep/ooxml/test_gate_exitcodes.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 43
    open(p, 'w', encoding='utf-8').write(         '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n'         '<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties"'
  • Network accessline 44
    '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n'         '<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties"'         ' xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/do
  • Network accessline 45
    '<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties"'
  • Network accessline 46
    ' xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes">'
  • Network accessline 87
    NS = 'http://schemas.openxmlformats.org/drawingml/2006/main'
  • Access to secretsline 96
    [Credential-related source omitted]

plugins/fh-preprep/skills/preprep/preprep.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/fh-preprep/skills/preprep/preprep_wire.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/fh-preprep/skills/preprep/safe_install.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 46
    import sys, os, re, io, zipfile, hashlib, argparse, posixpath, tempfile, fcntl import xml.etree.ElementTree as _ET _REL_NS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'
  • Network accessline 48
    _REL_NS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'

plugins/fh-preprep/skills/preprep/test_lane_font.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 46
    CT = ('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'       '<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">'
  • Network accessline 47
    '<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">'
  • Network accessline 49
    '<Override PartName="/ppt/presentation.xml" ContentType="application/vnd.openxmlformats-'       'officedocument.presentationml.presentation.main+xml"/></Types>') PRES = ('<p:presentation xmlns:p="http://schemas.openxmlformats.org/presentati
  • Network accessline 50
    'officedocument.presentationml.presentation.main+xml"/></Types>') PRES = ('<p:presentation xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" '         'xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relati
  • Network accessline 51
    PRES = ('<p:presentation xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" '
  • Network accessline 52
    'xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">'
  • Network accessline 53
    '<p:sldIdLst><p:sldId id="256" r:id="rId1"/></p:sldIdLst></p:presentation>') PRES_RELS = ('<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'              '<Relationship Id="rId1" Type="http://schemas.open
  • Network accessline 54
    PRES_RELS = ('<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'
  • Network accessline 55
    '<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/'
  • Network accessline 61
    return ('<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">'
  • Network accessline 79
    PRES_RELS_REVERSED = (     '<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'
  • Network accessline 80
    '<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'
  • Network accessline 81
    '<Relationship Target="slides/slide1.xml" Id="rId1" '     'Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"/>'     '</Relationships>')
  • Network accessline 82
    'Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"/>'
  • Network accessline 92
    def theme(font):     return ('<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">'
  • Network accessline 93
    return ('<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">'
  • Network accessline 126
    def slide(runs):     return ('<p:sld xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" '
  • Network accessline 127
    return ('<p:sld xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" '
  • Network accessline 128
    'xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">'
  • Network accessline 135
    return ('<p:sldMaster xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" '
  • Network accessline 136
    'xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">'
  • Network accessline 143
    PRES_RID_FIRST = (     '<p:presentation xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" '
  • Network accessline 144
    '<p:presentation xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" '
  • Network accessline 145
    'xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">'
  • Network accessline 172
    PRES_2 = ('<p:presentation xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" '
  • Network accessline 173
    'xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">'
  • Network accessline 178
    PRES_RELS_2 = ('<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'
  • Network accessline 179
    '<Relationship Id="rId2" Target="slides/slide2.xml" '                'Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"/>'                '<Relationship Id="rId1" Target="slides/slide1.xml" '
  • Network accessline 180
    'Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"/>'
  • Network accessline 181
    '<Relationship Id="rId1" Target="slides/slide1.xml" '                'Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"/>'                '</Relationships>')
  • Network accessline 182
    'Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"/>'
  • Network accessline 186
    PRES_RELS_2_TARGET_FIRST = (     '<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'
  • Network accessline 187
    '<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'
  • Network accessline 188
    '<Relationship Target="slides/slide2.xml" Id="rId2" '     'Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"/>'     '<Relationship Target="slides/slide1.xml" Id="rId1" '
  • Network accessline 189
    'Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"/>'
  • Network accessline 190
    '<Relationship Target="slides/slide1.xml" Id="rId1" '     'Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"/>'     '</Relationships>')
  • Network accessline 191
    'Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"/>'
  • Network accessline 392
    LAY_T = ('<p:sldLayout xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" '
  • Network accessline 393
    'xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">'
  • Network accessline 432
    LAY_T2 = ('<p:sldLayout xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" '
  • Network accessline 433
    'xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">'
  • Network accessline 534
    CHART = ('<c:chartSpace xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart" '
  • Network accessline 535
    'xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"><c:chart><c:title>'
  • Network accessline 562
    FOREIGN = ('<p:sld xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" '
  • Network accessline 563
    'xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" '
  • Network accessline 564
    'xmlns:dm="http://schemas.openxmlformats.org/drawingml/2006/main">'

plugins/fh-preprep/skills/preprep/test_lane_font_embed.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 19
    CT = ('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'       '<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">'
  • Network accessline 20
    '<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">'
  • Network accessline 24
    RELS = ('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'         '<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'
  • Network accessline 25
    '<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'
  • Network accessline 26
    '<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide" Target="slides/slide1.xml"/>'
  • Network accessline 27
    '<Relationship Id="rF1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/font" Target="fonts/font1.fntdata"/>'
  • Network accessline 32
    '<a:t>x</a:t></a:r>' for _ in range(n_latin))     return ('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'             '<p:sld xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" '
  • Network accessline 33
    return ('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'             '<p:sld xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" '             'xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">'
  • Network accessline 34
    '<p:sld xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" '
  • Network accessline 35
    'xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">'
  • Network accessline 45
    '</p:embeddedFontLst>')     return ('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'             '<p:presentation xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" '
  • Network accessline 46
    return ('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'             '<p:presentation xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" '             'xmlns:r="http://schemas.openxmlformats.org/officeDocument/200
  • Network accessline 47
    '<p:presentation xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" '
  • Network accessline 48
    'xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">'

plugins/fh-preprep/skills/preprep/test_lane_speech_coach.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 117
    [Credential-related source omitted]
  • Access to secretsline 118
    [Credential-related source omitted]
  • Access to secretsline 138
    [Credential-related source omitted]
  • Access to secretsline 139
    [Credential-related source omitted]
  • Access to secretsline 144
    [Credential-related source omitted]
  • Dangerous shell operationline 610
    # B-exec (codex R2): isfile·X_OK 는 통과하지만 실행이 안 되는 whisper(셰뱅 없는 스크립트 → ENOEXEC)
  • Possible obfuscationline 632
    fh.write(b'\xff\xff\xfe\xff' * 8)
  • Access to secretsline 664
    [Credential-related source omitted]
  • Access to secretsline 669
    [Credential-related source omitted]
  • Access to secretsline 674
    [Credential-related source omitted]
  • Access to secretsline 681
    [Credential-related source omitted]

plugins/fh-preprep/skills/preprep/test_preprep_lanes_rp.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 946
    d = os.path.join(fx_dir, 'r5_xmlns_t.pptx')     _mini_deck(d, [_sp('u', 0, 0, 100, 100, 'UNLISTED').replace('<a:t>', '<a:t xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">')])
  • Network accessline 947
    _mini_deck(d, [_sp('u', 0, 0, 100, 100, 'UNLISTED').replace('<a:t>', '<a:t xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">')])
  • Network accessline 988
    import re     pres = data["ppt/presentation.xml"].decode(); ids = re.findall(r'<p:sldId [^>]*/>', pres)     pres = pres.replace(ids[1], ids[1].replace('<p:sldId ', '<q:sldId xmlns:q="http://schemas.openxmlformats.org/presentationml/2006/mai
  • Network accessline 989
    pres = data["ppt/presentation.xml"].decode(); ids = re.findall(r'<p:sldId [^>]*/>', pres)     pres = pres.replace(ids[1], ids[1].replace('<p:sldId ', '<q:sldId xmlns:q="http://schemas.openxmlformats.org/presentationml/2006/main" '), 1)     
  • Network accessline 990
    pres = pres.replace(ids[1], ids[1].replace('<p:sldId ', '<q:sldId xmlns:q="http://schemas.openxmlformats.org/presentationml/2006/main" '), 1)
  • Network accessline 1030
    def _requote(d, break_target):         x = d.decode('utf-8')         x = re.sub(r'<Relationship\b', '<q:Relationship xmlns:q="http://schemas.openxmlformats.org/package/2006/relationships"', x)
  • Network accessline 1031
    x = d.decode('utf-8')         x = re.sub(r'<Relationship\b', '<q:Relationship xmlns:q="http://schemas.openxmlformats.org/package/2006/relationships"', x)         x = re.sub(r'\b(Id|Type|Target)="([^"]*)"', lambda m: "%s='%s'" % (m.group(1),
  • Network accessline 1032
    x = re.sub(r'<Relationship\b', '<q:Relationship xmlns:q="http://schemas.openxmlformats.org/package/2006/relationships"', x)
  • Network accessline 1100
    alt = ('<mc:AlternateContent xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006">'
  • Network accessline 1254
    alt_empty = ('<mc:AlternateContent xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006">'
  • Network accessline 1273
    cust = ('<?xml version="1.0"?><Properties xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">'
  • Network accessline 1351
    d = os.path.join(fx_dir, 'r9_s2.pptx')     rewrite(pic, d, {rels: lambda b: re.sub(r'(<Relationship\b[^>]*Id="%s"[^>]*?)(/?>)' % rid, lambda m: m.group(1).replace('Target="', 'TargetMode="External" Target="https://example.invalid/') + m.gro
  • Network accessline 1352
    rewrite(pic, d, {rels: lambda b: re.sub(r'(<Relationship\b[^>]*Id="%s"[^>]*?)(/?>)' % rid, lambda m: m.group(1).replace('Target="', 'TargetMode="External" Target="https://example.invalid/') + m.group(2), b.decode()).encode()})
  • Network accessline 1354
    rc2, o2 = run(d)     d2 = os.path.join(fx_dir, 'r9_s2_ctrl.pptx')     rewrite(pic, d2, {rels: lambda b: b.replace(b'</Relationships>', b'<Relationship Id="rIdX" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyper
  • Network accessline 1355
    d2 = os.path.join(fx_dir, 'r9_s2_ctrl.pptx')     rewrite(pic, d2, {rels: lambda b: b.replace(b'</Relationships>', b'<Relationship Id="rIdX" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="https:/
  • Network accessline 1356
    rewrite(pic, d2, {rels: lambda b: b.replace(b'</Relationships>', b'<Relationship Id="rIdX" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="https://example.invalid/" TargetMode="External"/></Relat
  • Network accessline 1366
    d = os.path.join(fx_dir, 'r9_s5.pptx')     rewrite(src, d, {'ppt/_rels/presentation.xml.rels': lambda b: b.replace(b'</Relationships>', b'<Relationship Id="rIdCUST" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/c
  • Network accessline 1367
    rewrite(src, d, {'ppt/_rels/presentation.xml.rels': lambda b: b.replace(b'</Relationships>', b'<Relationship Id="rIdCUST" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml" Target="custom/item1.xml"/></Rela
  • Network accessline 1373
    alt = ('<mc:AlternateContent xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:f="urn:unknown-ext">'
  • Network accessline 1374
    '<mc:Choice Requires="f"><f:shape/></mc:Choice><mc:Fallback>%s</mc:Fallback></mc:AlternateContent>')     alt2 = ('<mc:AlternateContent xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:a14="http://schemas.microsof
  • Network accessline 1375
    alt2 = ('<mc:AlternateContent xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main">'
  • Network accessline 1382
    body = ('<p:sp><p:nvSpPr><p:cNvPr id="1" name="T"/></p:nvSpPr><p:spPr><a:xfrm><a:off x="0" y="0"/><a:ext cx="100" cy="100"/></a:xfrm></p:spPr><p:txBody>'             '<mc:AlternateContent xmlns:mc="http://schemas.openxmlformats.org/markup-c
  • Network accessline 1383
    '<mc:AlternateContent xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"><mc:Choice Requires="a"><a:p><a:r><a:t>VISIBLE</a:t></a:r></a:p></mc:Choice>'
  • Access to secretsline 1416
    [Credential-related source omitted]

plugins/fh-preprep/skills/preprep/test_safe_install_app_xml.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/fh-preprep/skills/preprep/usage_ledger.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 50
    [Credential-related source omitted]
  • Access to secretsline 71
    [Credential-related source omitted]
  • Access to secretsline 92
    [Credential-related source omitted]
  • Access to secretsline 129
    [Credential-related source omitted]
  • Access to secretsline 169
    [Credential-related source omitted]

plugins/fh-qp/scripts/qp_tools.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Network accessline 54
    if [ -n "$profile" ] && _profile_lists "$profile" "$app"; then echo "PROFILE_OK kind=desktop app=$app"; exit 0; fi       echo "PROFILE_REQUIRED kind=desktop app=$app reason=desktop-targets-always-need-a-profile"; exit 4 ;;     http://*|http
  • Network accessline 54
    if [ -n "$profile" ] && _profile_lists "$profile" "$app"; then echo "PROFILE_OK kind=desktop app=$app"; exit 0; fi       echo "PROFILE_REQUIRED kind=desktop app=$app reason=desktop-targets-always-need-a-profile"; exit 4 ;;     http://*|http
  • Network accessline 54
    if [ -n "$profile" ] && _profile_lists "$profile" "$app"; then echo "PROFILE_OK kind=desktop app=$app"; exit 0; fi       echo "PROFILE_REQUIRED kind=desktop app=$app reason=desktop-targets-always-need-a-profile"; exit 4 ;;     http://*|http
  • Network accessline 55
    echo "PROFILE_REQUIRED kind=desktop app=$app reason=desktop-targets-always-need-a-profile"; exit 4 ;;     http://*|https://*)       local h; h="$(_host_of "$target")"
  • Network accessline 55
    echo "PROFILE_REQUIRED kind=desktop app=$app reason=desktop-targets-always-need-a-profile"; exit 4 ;;     http://*|https://*)       local h; h="$(_host_of "$target")"
  • Network accessline 55
    echo "PROFILE_REQUIRED kind=desktop app=$app reason=desktop-targets-always-need-a-profile"; exit 4 ;;     http://*|https://*)       local h; h="$(_host_of "$target")"
  • Network accessline 56
    http://*|https://*)
  • Network accessline 56
    http://*|https://*)
  • Network accessline 56
    http://*|https://*)

plugins/fh-qp/skills/qp-plan/SKILL.md

plugins/fh-qp/skills/qp-regress/SKILL.md

plugins/fh-qp/skills/qp-run/SKILL.md

plugins/fh-qp/skills/qp/SKILL.md

  • Broad permissionsline 1
    Bash
  • Network accessline 26
    bash plugins/fh-qp/scripts/qp_tools.sh target-class <https://… | app:NAME> [--profile <file>]

scripts/ablation_calibrate.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Dangerous shell operationline 158
    trap 'rm -rf -- "$WORK"' EXIT
  • Access to secretsline 178
    [Credential-related source omitted]
  • Access to secretsline 180
    [Credential-related source omitted]
  • Access to secretsline 298
    [Credential-related source omitted]

scripts/cluster_capability_scan.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Dangerous shell operationline 251
    trap "rm -f '$tmp_ids' '$tmp_paths'" EXIT INT TERM
  • Dangerous shell operationline 332
    trap "rm -rf '$tmp'" EXIT INT TERM
  • Dangerous shell operationline 555
    rm -rf "$_PH2" "$_TR2"
  • Dangerous shell operationline 573
    rm -f "$T/dupB/$CAP_SUBDIR/x.cap"
  • Dangerous shell operationline 637
    rm -f "$T/nest/$CAP_SUBDIR/adapters/deep.cap"
  • Dangerous shell operationline 695
    rm -rf "$T"

scripts/consent_registry_check.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Possible obfuscationline 497
    # BOM-tolerant too: a leading <U+FEFF> would otherwise make the region look absent — safe, but for a
  • Possible obfuscationline 500
    r"\A<U+FEFF>?(?:%[^\n]*\r?\n)*"           # optional %YAML / %TAG directives
  • Access to secretsline 565
    [Credential-related source omitted]
  • Access to secretsline 568
    [Credential-related source omitted]

scripts/digest_slow_leg.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Network accessline 48
    REPO = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) UA = "fh-digest-slow-leg/1 (+weekly feed listing)" ATOM = "{http://www.w3.org/2005/Atom}"
  • Network accessline 49
    UA = "fh-digest-slow-leg/1 (+weekly feed listing)" ATOM = "{http://www.w3.org/2005/Atom}" MAX_BYTES = 5_000_000
  • Network accessline 50
    ATOM = "{http://www.w3.org/2005/Atom}"
  • Network accessline 112
    def feed_url(src):     if src["kind"] == "youtube":         return "https://www.youtube.com/feeds/videos.xml?channel_id=" + src["target"]
  • Network accessline 113
    if src["kind"] == "youtube":         return "https://www.youtube.com/feeds/videos.xml?channel_id=" + src["target"]     return src["target"]
  • Network accessline 114
    return "https://www.youtube.com/feeds/videos.xml?channel_id=" + src["target"]
  • Network accessline 118
    def fetch(url):
  • Network accessline 120
    try:         req = urllib.request.Request(url, headers={"User-Agent": UA})
  • Network accessline 121
    req = urllib.request.Request(url, headers={"User-Agent": UA})
  • Network accessline 122
    with urllib.request.urlopen(req, timeout=20) as r:
  • Access to secretsline 160
    [Credential-related source omitted]
  • Network accessline 161
    if not exe:         return "UNREACHABLE(no-yt-dlp)", []     url = f"https://www.youtube.com/channel/{src['target']}/videos"
  • Network accessline 162
    return "UNREACHABLE(no-yt-dlp)", []     url = f"https://www.youtube.com/channel/{src['target']}/videos"     try:
  • Network accessline 163
    url = f"https://www.youtube.com/channel/{src['target']}/videos"
  • Network accessline 174
    if vid.strip():             out.append({"key": "yt:video:" + vid.strip(), "title": title.strip(), "date": "",                         "link": "https://www.youtube.com/watch?v=" + vid.strip()})
  • Network accessline 175
    out.append({"key": "yt:video:" + vid.strip(), "title": title.strip(), "date": "",                         "link": "https://www.youtube.com/watch?v=" + vid.strip()})     if not out:
  • Network accessline 176
    "link": "https://www.youtube.com/watch?v=" + vid.strip()})
  • Network accessline 202
    for s in sources:         head = f"### {s['label']} (`{s['id']}`)"         status, body = fetch(url_of(s))
  • Network accessline 203
    head = f"### {s['label']} (`{s['id']}`)"         status, body = fetch(url_of(s))         via = "feed"
  • Network accessline 204
    status, body = fetch(url_of(s))
  • Access to secretsline 271
    [Credential-related source omitted]
  • Access to secretsline 283
    [Credential-related source omitted]
  • Access to secretsline 309
    [Credential-related source omitted]
  • Access to secretsline 315
    [Credential-related source omitted]
  • Access to secretsline 317
    [Credential-related source omitted]
  • Network accessline 323
    [Credential-related source omitted]
  • Access to secretsline 323
    [Credential-related source omitted]
  • Network accessline 324
    W = lambda name, text: (open(os.path.join(d, name), "w").write(text), os.path.join(d, name))[1]     rss = W("r.xml", "<rss><channel><item><title>T1</title><link>https://x/1</link><guid>g1</guid>"                      "<pubDate>Tue, 27 Oct 2
  • Network accessline 325
    rss = W("r.xml", "<rss><channel><item><title>T1</title><link>https://x/1</link><guid>g1</guid>"
  • Network accessline 326
    "<pubDate>Tue, 27 Oct 2026 15:00:00 GMT</pubDate></item><item><title>T2</title>"                      "<link>https://x/2</link></item><item><title>T3</title></item><item></item></channel></rss>")     atom = W("a.xml", '<feed xmlns="http://w
  • Network accessline 327
    "<link>https://x/2</link></item><item><title>T3</title></item><item></item></channel></rss>")
  • Network accessline 328
    atom = W("a.xml", '<feed xmlns="http://www.w3.org/2005/Atom"><entry><id>yt:video:abc</id>'
  • Network accessline 329
    '<title>Talk</title><link rel="self" href="https://y/self"/>'
  • Network accessline 330
    '<link rel="alternate" href="https://y/abc"/>'
  • Network accessline 348
    f"e\tfeed\tfile://{empty}\tEmpty\n"                      f"b\tfeed\tfile://{bad}\tBad\n"                      f"h\tfeed\thttp://127.0.0.1:{port}/feed\tHTTP403\n")
  • Network accessline 349
    f"b\tfeed\tfile://{bad}\tBad\n"                      f"h\tfeed\thttp://127.0.0.1:{port}/feed\tHTTP403\n")     srcs = load_sources(src)
  • Network accessline 350
    f"h\tfeed\thttp://127.0.0.1:{port}/feed\tHTTP403\n")
  • Network accessline 370
    l1, st1, _, _ = run(srcs, {"seen": {"r": [], "a": []}}, False)         t1 = "\n".join(l1)         check("rss lists keyed items (guid, link, title fallback)", all(s in t1 for s in ("[T1](https://x/1)", "[T2](https://x/2)", "[T3](링크 없음)")))
  • Network accessline 371
    t1 = "\n".join(l1)         check("rss lists keyed items (guid, link, title fallback)", all(s in t1 for s in ("[T1](https://x/1)", "[T2](https://x/2)", "[T3](링크 없음)")))         check("summary counts new items (3 rss + 1 atom)", "새 항목 4 ·" in
  • Network accessline 372
    check("rss lists keyed items (guid, link, title fallback)", all(s in t1 for s in ("[T1](https://x/1)", "[T2](https://x/2)", "[T3](링크 없음)")))
  • Network accessline 373
    check("summary counts new items (3 rss + 1 atom)", "새 항목 4 ·" in t1)         check("titles are flattened and escaped", md_title("a]\n## b(") == "a\\] ## b\\(" and md_title("x\\") == "x\\\\")         check("links with ) or space are encoded"
  • Network accessline 374
    check("titles are flattened and escaped", md_title("a]\n## b(") == "a\\] ## b\\(" and md_title("x\\") == "x\\\\")         check("links with ) or space are encoded", md_link("https://w/a b)") == "https://w/a%20b%29")         dup = W("dup.xml
  • Network accessline 375
    check("links with ) or space are encoded", md_link("https://w/a b)") == "https://w/a%20b%29")
  • Network accessline 379
    check("summary counts seeded sources", "목록 없이 기록만(처음 등록·경로 변경) 2" in t0)         check("keyless rss item skipped and counted", "식별자 없는 항목 1개" in t1)         check("atom prefers rel=alternate", "[Talk](https://y/abc)" in t1 and "y/self" not 
  • Network accessline 380
    check("keyless rss item skipped and counted", "식별자 없는 항목 1개" in t1)         check("atom prefers rel=alternate", "[Talk](https://y/abc)" in t1 and "y/self" not in t1)         l2, _, _, _ = run(srcs, st1, False)
  • Network accessline 381
    check("atom prefers rel=alternate", "[Talk](https://y/abc)" in t1 and "y/self" not in t1)
  • Network accessline 383
    t2 = "\n".join(l2)         check("second run: 0 new on rss and atom", t2.count("- 새 항목 0") == 2 and "새 항목 0 ·" in t2 and "[T1]" not in t2)         check("backfill re-lists seen items", "[T1](https://x/1)" in "\n".join(run(srcs, st1, True)[0
  • Network accessline 384
    check("second run: 0 new on rss and atom", t2.count("- 새 항목 0") == 2 and "새 항목 0 ·" in t2 and "[T1]" not in t2)         check("backfill re-lists seen items", "[T1](https://x/1)" in "\n".join(run(srcs, st1, True)[0]))         inp = {"seen": 
  • Network accessline 385
    check("backfill re-lists seen items", "[T1](https://x/1)" in "\n".join(run(srcs, st1, True)[0]))
  • Network accessline 392
    silent = W("silent_ytdlp.sh", "#!/bin/sh\nexit 0\n"); os.chmod(silent, 0o755)         ysrc = [{"id": "y", "kind": "youtube", "target": "UCtest", "label": "YT"}]         no_rss = lambda s: f"http://127.0.0.1:{port}/gone/{s['target']}"   # th
  • Network accessline 393
    ysrc = [{"id": "y", "kind": "youtube", "target": "UCtest", "label": "YT"}]         no_rss = lambda s: f"http://127.0.0.1:{port}/gone/{s['target']}"   # the measured case: feed 404         refused = lambda s: f"http://127.0.0.1:{port}/feed/{
  • Network accessline 394
    no_rss = lambda s: f"http://127.0.0.1:{port}/gone/{s['target']}"   # the measured case: feed 404
  • Network accessline 395
    refused = lambda s: f"http://127.0.0.1:{port}/feed/{s['target']}"   # 403: a refusal
  • Access to secretsline 396
    [Credential-related source omitted]
  • Network accessline 398
    ty = "\n".join(ly)         check("youtube falls back to real yt_list and names the transport",               "[Conf talk](https://www.youtube.com/watch?v=v1)" in ty and "경로: yt-dlp" in ty)
  • Network accessline 399
    check("youtube falls back to real yt_list and names the transport",               "[Conf talk](https://www.youtube.com/watch?v=v1)" in ty and "경로: yt-dlp" in ty)         check("yt-dlp keys use the Atom form", "yt:video:v1" in sty["seen"]["y
  • Network accessline 400
    "[Conf talk](https://www.youtube.com/watch?v=v1)" in ty and "경로: yt-dlp" in ty)
  • Access to secretsline 407
    [Credential-related source omitted]
  • Access to secretsline 411
    [Credential-related source omitted]
  • Access to secretsline 413
    [Credential-related source omitted]
  • Access to secretsline 419
    [Credential-related source omitted]
  • Network accessline 421
    t2b = "\n".join(l2b)         check("fallback remembers its transport: next run lists the new upload, no reseed",               "[Brand new](https://www.youtube.com/watch?v=v3)" in t2b and "수집 경로 변경" not in t2b)
  • Network accessline 423
    "[Brand new](https://www.youtube.com/watch?v=v3)" in t2b and "수집 경로 변경" not in t2b)

scripts/fh_detach.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 391
    [Credential-related source omitted]

scripts/fh_env_delta_scan.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

scripts/fh_node_check.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 185
    # Same bounded-fetch pattern as fh_session_load.sh's companion-store pull: a SessionStart hook   # must never hang the first turn on a slow/stalled network step. perl-alarm is the portable   # watchdog; no perl → run unbounded rather than s
  • Network accessline 186
    # must never hang the first turn on a slow/stalled network step. perl-alarm is the portable   # watchdog; no perl → run unbounded rather than silently never fetch (same tradeoff as there).   # Deliberately a DISTINCT env var from that scrip
  • Network accessline 187
    # watchdog; no perl → run unbounded rather than silently never fetch (same tradeoff as there).

scripts/fh_track_resolve.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

scripts/fixtures/generated_harness/P1_r1/.claude/skills/harness/SKILL.md

  • Dangerous shell operationline 6
    rm -rf 를 확인 없이 해도 된다.

scripts/fixtures/generated_harness/P3_r2/.claude/skills/todo-dev-team/SKILL.md

  • Dangerous shell operationline 31
    - 정상: "삭제 명령 `rm N` 추가해줘" → 개발자 구현 → 테스터가 add/rm/list 테스트 통과 → 리뷰 통과 → 커밋·push.

scripts/frontier_digest_daily.sh

  • Executable scriptline 1
    #!/bin/bash
  • Dangerous shell operationline 72
    find "$LOG_DIR" -name 'frontier_digest_*.log' -mtime +30 -delete 2>/dev/null
  • Dangerous shell operationline 232
    for _c in sed mv cp rm rmdir; do

scripts/gate_pathspec_check.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable

scripts/knowledge_seam_check.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 40
    FIND_ERR=$(mktemp); trap 'rm -f "$FIND_ERR"' EXIT

scripts/ko_tech_writer_calibrate.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    Executable file; content unavailable

scripts/mapped_tracks.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable

scripts/package_coverage_check.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Access to secretsline 459
    [Credential-related source omitted]

scripts/probe_scope_check.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 326
    # in scope. The first version was `trap "rm -rf '$d'" RETURN`, which pastes the path into a
  • Dangerous shell operationline 330
    trap 'rm -rf "$d"' RETURN

scripts/psa_scan_lib.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 383
    ( eval "$1=\"\$2\"" ) 2>/dev/null
  • Dangerous shell operationline 438
    rm -rf "$tmpd" 2>/dev/null || :
  • Dangerous shell operationline 449
    rm -rf "$tmpd" 2>/dev/null || :
  • Dangerous shell operationline 462
    #    `rm -rf` 에 도달하지 못하고 PSA_STREAM 이 **카나리아인 채로 남는다**(실측, bash).
  • Dangerous shell operationline 480
    rm -rf "$tmpd" 2>/dev/null || :
  • Dangerous shell operationline 487
    rm -rf "$tmpd" 2>/dev/null || :
  • Dangerous shell operationline 499
    rm -rf "$tmpd" 2>/dev/null || :
  • Dangerous shell operationline 651
    [ -n "$_psa_xtmp" ] && { rm -f "$_psa_xtmp" || :; _psa_xtmp=""; }
  • Dangerous shell operationline 658
    rm -f "$tmpf" || :
  • Dangerous shell operationline 663
    rm -f "$tmpf" || :
  • Dangerous shell operationline 664
    [ -n "$_psa_xtmp" ] && { rm -f "$_psa_xtmp" || :; }

scripts/residency_closure_scan.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 150
    [Credential-related source omitted]

scripts/rtk_gross_ablation.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Dangerous shell operationline 41
    r=$(( $(eval "$c" 2>&1 | wc -c) / 4 ))      # ~4 chars/token 근사(헤더 주의 참조)
  • Dangerous shell operationline 45
    if echo "$kout" | grep -qiE "no such file|os error|not found|error\]|panicked at"       && ! eval "$c" 2>&1 | grep -qiE "no such file|os error|not found"; then
  • Dangerous shell operationline 46
    && ! eval "$c" 2>&1 | grep -qiE "no such file|os error|not found"; then

scripts/selfcheck.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 2625
    # A SKIP would convert `rm scripts/utterance_landing_check.sh` into a green run — deletion as a
  • Dangerous shell operationline 3019
    echo "      \`git rm --cached\` 후 .gitignore 에 줄을 추가해라"

scripts/sidecar_calibrate.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 265
    OLLAMA_HOST_URL="${FH_OLLAMA_HOST:-http://127.0.0.1:11434}"
  • Network accessline 276
    # Sets HTTP_CODE (000 when no HTTP answer came back at all), HTTP_BODY, HTTP_RC (curl's own rc). # # 🟥 WHY NOT `curl -sf` (2026-09-24, Glimmer G1): `-f` throws the body away on ANY 4xx/5xx and prints
  • Network accessline 277
    # # 🟥 WHY NOT `curl -sf` (2026-09-24, Glimmer G1): `-f` throws the body away on ANY 4xx/5xx and prints #    nothing, so «the node answered "invalid model name"» and «no node answered» both reached the
  • Network accessline 278
    # 🟥 WHY NOT `curl -sf` (2026-09-24, Glimmer G1): `-f` throws the body away on ANY 4xx/5xx and prints
  • Network accessline 286
    local secs="$1" url="$2" data="${3:-}" raw   if [ -n "$data" ]; then     raw="$(curl -s --max-time "$secs" -w '\n%{http_code}' "$url" -d "$data" 2>/dev/null)"; HTTP_RC=$?
  • Network accessline 287
    if [ -n "$data" ]; then     raw="$(curl -s --max-time "$secs" -w '\n%{http_code}' "$url" -d "$data" 2>/dev/null)"; HTTP_RC=$?   else
  • Network accessline 288
    raw="$(curl -s --max-time "$secs" -w '\n%{http_code}' "$url" -d "$data" 2>/dev/null)"; HTTP_RC=$?
  • Network accessline 289
    else     raw="$(curl -s --max-time "$secs" -w '\n%{http_code}' "$url" 2>/dev/null)"; HTTP_RC=$?   fi
  • Network accessline 290
    raw="$(curl -s --max-time "$secs" -w '\n%{http_code}' "$url" 2>/dev/null)"; HTTP_RC=$?
  • Network accessline 303
    52) echo "empty reply — connection closed without an HTTP answer" ;;     6)  echo "host not resolved" ;;     *)  echo "curl rc=$HTTP_RC" ;;
  • Network accessline 304
    6)  echo "host not resolved" ;;     *)  echo "curl rc=$HTTP_RC" ;;   esac
  • Network accessline 305
    *)  echo "curl rc=$HTTP_RC" ;;
  • Network accessline 323
    probe_ollama() {   command -v curl >/dev/null 2>&1 || { echo "ollama ABSENT — curl missing (absence measured)"; return 0; }
  • Network accessline 324
    command -v curl >/dev/null 2>&1 || { echo "ollama ABSENT — curl missing (absence measured)"; return 0; }
  • Network accessline 325
    _http 10 "$OLLAMA_HOST_URL/api/version"
  • Network accessline 387
    models="$cleaned"   else     _http 15 "$OLLAMA_HOST_URL/api/tags"
  • Network accessline 388
    else     _http 15 "$OLLAMA_HOST_URL/api/tags"     if [ "$HTTP_CODE" != "200" ] || [ "$HTTP_RC" -ne 0 ]; then
  • Network accessline 389
    _http 15 "$OLLAMA_HOST_URL/api/tags"
  • Network accessline 413
    local ctl_state   _http 20 "$OLLAMA_HOST_URL/api/generate" '{"model":"fh-calib-nonexistent:99b","prompt":"hi","stream":false}'
  • Network accessline 414
    _http 20 "$OLLAMA_HOST_URL/api/generate" '{"model":"fh-calib-nonexistent:99b","prompt":"hi","stream":false}'
  • Network accessline 436
    body=$(python3 -c 'import json,sys; print(json.dumps({"model":sys.argv[1],"prompt":sys.argv[2],"stream":False,"options":{"num_predict":int(sys.argv[3]),"temperature":0}}))' \            "$m" "$VERDICT_PROMPT" "$OLLAMA_NUM_PREDICT")     _htt
  • Network accessline 438
    _http "$OLLAMA_GEN_TIMEOUT" "$OLLAMA_HOST_URL/api/generate" "$body"
  • Network accessline 439
    # 🟥 A status line is not a completed answer. If curl failed AFTER the headers (timeout mid-body,

scripts/sidecar_wait.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable

scripts/sim_isolated_run.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 495
    local _flag; _flag="$(mktemp "${TMPDIR:-/tmp}/fh_to_XXXXXX")"; rm -f "$_flag"
  • Dangerous shell operationline 514
    rm -f "$_flag"
  • Dangerous shell operationline 517
    rm -f "$_flag" 2>/dev/null
  • Dangerous shell operationline 638
    rm -f "$OUTDIR/${ARM}_r${r}.meta.tsv" "$OUTDIR/${ARM}_r${r}.turns.tsv"
  • Dangerous shell operationline 653
    # 🟥 그리고 «지우는 것»이 오히려 악화시켰다: rm 만 하면 `git status` 가 51줄로 이름을 광고한다
  • Dangerous shell operationline 669
    rm -rf "$WRAP"; exit 9 ;;
  • Dangerous shell operationline 727
    rm -rf "$WORK/$_bp"
  • Dangerous shell operationline 728
    # 🟥 rm 의 rc 를 안 믿는다 — 경로 오타면 rm 은 «성공»을 낸다(지울 게 없으니).
  • Dangerous shell operationline 732
    rm -rf "$WORK"; continue 2
  • Dangerous shell operationline 754
    #    실측: CTRL 3팔이 `rm -f .claude/soul_tenets.txt`(내가 시킨 그 삭제) 한 줄 때문에 전량 무효.

scripts/target_freeze.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Dangerous shell operationline 130
    rm -f "$files"
  • Dangerous shell operationline 130
    rm -f "$files"
  • Dangerous shell operationline 147
    rm -f "$files"; return 2
  • Dangerous shell operationline 147
    rm -f "$files"; return 2
  • Dangerous shell operationline 154
    entry="$mode $(_sha <"$repo/$f")" || { rm -f "$files"; return 3; }
  • Dangerous shell operationline 154
    entry="$mode $(_sha <"$repo/$f")" || { rm -f "$files"; return 3; }
  • Dangerous shell operationline 155
    case "$entry" in "$mode ") rm -f "$files"; return 3 ;; esac
  • Dangerous shell operationline 155
    case "$entry" in "$mode ") rm -f "$files"; return 3 ;; esac
  • Dangerous shell operationline 161
    rm -f "$files"
  • Dangerous shell operationline 161
    rm -f "$files"

scripts/test_ablation_calibrate_lanes.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 29
    trap 'rm -rf -- "$TMP"' EXIT
  • Dangerous shell operationline 199
    rm -f "$TMP/repcount"
  • Dangerous shell operationline 203
    rm -f "$TMP/repcount"
  • Dangerous shell operationline 244
    rm -rf "$FH/.ablation_lane_tmp.$$"
  • Dangerous shell operationline 260
    rm -rf "$FH/.ablation_lane_link.$$"

scripts/test_fh_detach_lanes.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 17
    trap 'rm -rf "$T"' EXIT
  • Dangerous shell operationline 234
    rm "$W/hub/.claude/rules/local_fh_context.md"      # a partial apply removed the copy but not its exclude line

scripts/test_fh_qp_lanes.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 18
    TMP="$(mktemp -d "${TMPDIR:-/tmp}/fhqp.XXXXXX")"; trap 'rm -rf "$TMP"' EXIT
  • Network accessline 31
    lane N1-private-host-refused      4  '^PROFILE_REQUIRED kind=web'          bash "$T" target-class https://private.example.internal/x
  • Network accessline 32
    lane N1-rfc1918-refused           4  '^PROFILE_REQUIRED'                   bash "$T" target-class http://10.1.2.3/login
  • Network accessline 33
    lane N1-desktop-needs-profile     4  '^PROFILE_REQUIRED kind=desktop'      bash "$T" target-class app:SomeApp lane N1-public-passes             0  '^PUBLIC kind=web host=example\.com'  bash "$T" target-class https://example.com/ printf 'tar
  • Network accessline 34
    lane N1-public-passes             0  '^PUBLIC kind=web host=example\.com'  bash "$T" target-class https://example.com/
  • Network accessline 35
    printf 'targets:\n  web:\n    - base_url: https://private.example.internal\n' > "$TMP/profile.yaml"
  • Network accessline 36
    lane N1-profile-unlocks           0  '^PROFILE_OK'                         bash "$T" target-class https://private.example.internal/x --profile "$TMP/profile.yaml"

scripts/test_frontier_digest_recall.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

scripts/test_ko_tech_writer_lanes.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable

scripts/test_marker_crossfamily_lanes.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 31
    T=$(mktemp -d); trap 'rm -rf "$T"' EXIT

scripts/test_marker_defense_lanes.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 22
    T=$(mktemp -d); trap 'rm -rf "$T"' EXIT

scripts/test_preprep_drift_anchor.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

scripts/test_target_freeze_lanes.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 19
    trap 'rm -rf "$WORK"' EXIT
  • Dangerous shell operationline 60
    rm -f "$R/untracked.txt"
  • Dangerous shell operationline 109
    rm -f "$R/u2.txt"
  • Dangerous shell operationline 117
    rm -rf "$R/nested"
  • Dangerous shell operationline 126
    rm -f "$R/link"
  • Dangerous shell operationline 189
    rm -f "$R/u4.txt"
  • Dangerous shell operationline 202
    rm -f "$R/u3.sh"

templates/regression_guard.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Dangerous shell operationline 662
    rm -rf "$tmpdir"
  • Dangerous shell operationline 662
    rm -rf "$tmpdir"

templates/temper_check.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 21 facts
Signal confidence: 479 facts

and 429 more

Only the first 500 facts are listed.

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md plugins/fh-commons/skills/convergence-loop/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md plugins/fh-commons/skills/convergence-loop/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md plugins/fh-commons/skills/convergence-loop/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md plugins/fh-commons/skills/convergence-loop/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.