Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Archive

ASecurity

> **Archived**: 2026-09-13 04:17 > **Related Plan**: plans/archive/plan-20260913-0258-repo-harness-test-skill.md > **Outcome**: Completed > **Lifecycle**: notes > **Parent Run ID**: run-20260913-0417 > **Archive Projection V1**: `plans/plan-20260913-0258-repo-harness-test-skill.md` => `plans/archive/plan-20260913-0258-repo-harness-test-skill.md` > **Archive Projection V1**: `tasks/notes/20260913-0258-repo-harness-test-skill.notes.md` => `tasks/archive/notes-20260913-0417-repo-harness-test-skill.

431 stars
0 votes
0 copies
0 views
Added 9/21/2026
developmentshellsqltestinggitperformancedocumentation

Works with

terminalcli

Security Analysis

A100/100

Scanned 9/21/2026

Install to Claude Code

$npx -y skills add Ancienttwo/repo-harness --skill archive --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Archive?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Archive
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ancienttwo-archive-85fdbe60/badge)](https://www.skillsdirectory.com/skills/ancienttwo-archive-85fdbe60)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
.gitkeep
> **Archived**: 2026-09-13 04:17
> **Related Plan**: plans/archive/plan-20260913-0258-repo-harness-test-skill.md
> **Outcome**: Completed
> **Lifecycle**: notes
> **Parent Run ID**: run-20260913-0417
> **Archive Projection V1**: `plans/plan-20260913-0258-repo-harness-test-skill.md` => `plans/archive/plan-20260913-0258-repo-harness-test-skill.md`
> **Archive Projection V1**: `tasks/notes/20260913-0258-repo-harness-test-skill.notes.md` => `tasks/archive/notes-20260913-0417-repo-harness-test-skill.md`
> **Archive Projection V1**: `tasks/contracts/20260913-0258-repo-harness-test-skill.contract.md` => `tasks/archive/contract-20260913-0417-repo-harness-test-skill.md`
> **Archive Projection V1**: `tasks/reviews/20260913-0258-repo-harness-test-skill.review.md` => `tasks/archive/review-20260913-0417-repo-harness-test-skill.md`

# Notes: repo-harness-test-skill

## Registration point

`assets/skill-commands/manifest.json` is the only registration list. Everything
downstream reads the parsed catalog rather than its own copy:

- `src/core/skill-surface/catalog.ts` parses it; `computeFacadesForProfile`
  (line 208) is what projects a package into an install profile, and it only
  considers `kind: "facade"`. A shipped, profile-projected skill therefore has
  to be a facade.
- `src/cli/installer/install-profile.ts` consumes the catalog for install state; `scripts/skill-surface-select.ts`
  and `scripts/sync-codex-installed-copies.sh` consume it for host sync;
  `scripts/run-skill-routing-eval.ts` consumes it for discovery scoring.

Chosen shape: `kind: "facade"`, `profiles: ["full"]`,
`component: "verifier"`, `discoverability: "profile-facade"`,
`mutatesRepoByDefault: false`. `verifier` is in `PROFILE_COMPONENTS.full` only
(`src/core/skill-surface/profile-components.ts`), which matches the package's
subject and leaves the minimal discovery matrix untouched. `verifier` is also
not filtered by any other selector, unlike `planning-integrations`, which feeds
`probeExpectations.planningCapabilityPaths`.

## Surface inventories that had to declare the new name

These are the drift checks between the manifest and the declared shipping
surface. Each gained the package name; no assertion's semantics changed.

| File | What it pins |
|------|--------------|
| `tests/skill-surface/catalog.test.ts` | package count 21 -> 22, repo-owned 13 -> 14, the `full` facade order, `mutationPathSkillNames.repoHarnessSkills` |
| `tests/skill-surface/canonical-packages.test.ts` | `CANONICAL_PACKAGES` row, which is what applies the 2048-byte router budget, the frontmatter contract, the declared-reference closure and the 5-line shell-block limit to the new package |
| `tests/action-command-skills.test.ts` | `TARGET_FACADE_KIND_PACKAGES`, an exact set over every `kind: "facade"` manifest entry |
| `tests/skill-routing-eval.test.ts` | `discovered_surface` for `full`/`claude`, derived live from the manifest |

`obsidian-memory` set the precedent for a post-cutover facade addition in the
first and third of those.

## Content provenance

Every technique claim resolves on `origin/main` at `e3b93f0f`:

- fixtures: `tests/helpers/repo-fixture.ts` (`tmpWorkspace` 32, `sandboxEnv`
  122, `run` 128, `initGitRepo` 132, `commitAll` 138, `withTempRepo` 144,
  `fixtureTemplate` 72-120)
- restore-in-place requirement: `repoHarnessRepoIdFor`
  (`src/effects/repo-registry.ts:105-107`); worked examples PR #421 (226bb5c6),
  #423 (95eddaa9), #426 (1ae2cd5c)
- in-process CLI: `tests/helpers/cli-in-process.ts:57`; the `Bun.which`
  start-environment constraint and the one retained real child are from PR #424
  (b9628876) and `tasks/notes/20260913-0038-chatgpt-inprocess.notes.md:38,57`
- issue-numbered naming counter-example: the five `tests/unit/issue-282-*` files
- runner and lanes: `scripts/lib/ci-run-tests.sh` (8, 151, 165-173, 191),
  `.github/workflows/ci.yml:92-95`, `scripts/select-ci-coverage.ts`
  (`isDocumentationPath` 18-27, `selectCoverage` 33), `scripts/replay-ci-coverage.ts`
- per-file timing recipe: verified against `gh run view 34711271371 --log`
  (main `1ae2cd5c`, 446 `[ci] test` lines). The log has no `##[group]tests/...`
  markers; the usable pairing is the pool's `[ci] test <file>` header with bun's
  closing `Ran N tests across 1 file. [<duration>]`, which the job pool keeps
  contiguous.
- JUnit evidence: `bun test --reporter=junit --reporter-outfile=<path>` probed
  on bun 1.4.0 (51 `<testcase name=` entries for one file); the method is named
  in `plans/plan-20260912-1948-fixture-template.md:177`; the 470/470 example is
  PR #420 (065a9225)
- verification plan shape: `src/core/evidence/verification-plan.ts:8-47`
- digest env vars: `scripts/check-task-sync.sh:8-9,124-125,141`
- documentation-consumer projection: `scripts/ci-documentation-consumers.ts`,
  `tests/ci-documentation-consumers.test.ts:45-48`
- expensive-case gates: `REPO_HARNESS_TEST_EXPENSIVE` exported by the `all`
  lane of `scripts/check-ci.sh:73` and consumed by
  `tests/harness-benchmark-matrix.test.ts:47-49` and
  `tests/claude-review.test.ts:22-24`, guarded by
  `tests/expensive-test-gate.test.ts` (which reads the exported name back out of
  the lane script, making that script the single naming authority) and
  documented at `docs/reference-configs/release-deploy.md:16`; landed on `main`
  as `268c973d` (PR #428). Narrower gates: `BRC_TEST_CONTAINER_IMAGE`
  (`tests/effects/campaign-container-live.test.ts:7`,
  `tests/effects/brc10-lifecycle.test.ts:283`) and
  `REPO_HARNESS_WINDOWS_PROTECTED_HELPER_SMOKE`
  (`tests/cli/windows-protected-helper-runtime-smoke.test.ts:14`)
- clock forwarding: `observeIssueBatch`
  (`src/effects/automation/issue-batch-observer.ts:136`, fixed call at 151,
  PR #425 / `9ae4cb2b`) and `refreshExternalSource`
  (`src/effects/external-sources/refresh.ts:64`, fixed call at 78, PR #427 /
  `08634e13`). Both were the same defect against the same fetcher, surfaced by
  the `BUN_TEST_JOBS=4` pool added in #425.

## Deviations

- The branch was rebased onto `e3b93f0f` after the expensive-test-gate package
  landed, so `references/authoring.md` and `references/running.md` cite
  `REPO_HARNESS_TEST_EXPENSIVE` from `main` rather than from a worktree.
- The task brief said not to change test assertions. Four test files were
  edited anyway, because they hold exact-set inventories of the shipping surface
  derived from the same manifest: there is no package `kind` that avoids them
  (`catalog.test.ts` pins the raw `packages.length`). Only names and counts
  moved; no oracle was weakened or removed.
- README's Skills table was left alone. It exists in five locales with no
  automated parity check, so touching one would create drift; the routing row
  went into `assets/reference-configs/agentic-development-flow.md`, which has an
  authoring source and a projection drift check.
- `repo-harness init --repo . --dry-run` plans 0 operations in this checkout and
  warns that downstream init is not applicable to the repo-harness source
  checkout, and validates only the self-host adoption boundary. Public init disables host
  skill sync even for a downstream repo; host projection is exercised through
  `scripts/sync-codex-installed-copies.sh` separately.


## Acceptance boundary decisions

- Refactor recipes describe discovery, process isolation and performance
  measurement options. The canonical policy and Verification Plan decide which
  apply; matching test names cannot establish assertion preservation.
- The in-process CLI helper is documented against its tested chatgpt terminal
  output/exit boundary. Other commands need a separately established completion
  contract before reuse.
- Public init is repo-local adoption. Host skill installation is the
  install/update sync script's boundary, tested separately in an isolated HOME.
- The declared repository integrity checks include deploy SQL ordering and
  project-state inspection in addition to the original plan's checks.


## Boundary readback

A disposable HOME and downstream Git repo exercised both boundaries with the
candidate source. `init --dry-run --json` planned 103 repo-local operations;
`init --no-codegraph --no-verify --json` applied successfully and materialized
`.ai/harness/policy.json`. Host synchronization in copy mode excluded the skill
under `minimal`; under `full`, all five package files in both Claude and Codex
skill roots matched the source byte-for-byte. This is source-entrypoint smoke,
not a packed-release installation or external dependency verification.

The original contract incorrectly declared harness-internal diff variables as
`inputs.env`, which the Verification Plan validator rejects. Its task-sync
command now carries the explicit PR diff boundary, with no such input fields.


## Global discovery boundary

The skill is globally discoverable, but its four references describe this
source checkout's fixtures and CI. Mode selection therefore first establishes
the target repository; downstream projects use their own testing commands,
fixtures and CI. The description and routing-table row state that scope. The
isolated downstream fixture has the adopted policy but no source
`tests/helpers/repo-fixture.ts` or `scripts/check-ci.sh`, demonstrating why
host installation does not make those recipes applicable there.

The formal codex-plugin review identified this scope issue on `3665ec35` as a
P2 finding. It is now corrected. The work-package permits one formal semantic
review; final closeout after this correction requires owner acceptance rather
than a repeated external review or a claim that the prior reviewer passed the
changed subject. Existing canonical package and routing tests verify package
shape and discovery; they are not an LLM downstream-routing evaluation.

Attribution

AncienttwoAncienttwo
View sourceMore from Ancienttwo →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

281612 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2132 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

9881 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →