Skip to content
Back to skills

Harvest Debt

ASecurity

This skill should be used when harvesting inline SOLEUR-DEBT: markers from the codebase into a ledger grouped by file, flagging markers with no upgrade trigger.

  • 16 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 3, 2026
ai-agentsgobashreactnodegitdocumentation

Works with

  • claude code

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 25, 2026

npx -y skills add jikig-ai/soleur --skill harvest-debt --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Harvest Debt?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Harvest Debt
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jikig-ai-harvest-debt/badge)](https://www.skillsdirectory.com/skills/jikig-ai-harvest-debt)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: harvest-debt
description: "This skill should be used when harvesting inline SOLEUR-DEBT: markers from the codebase into a ledger grouped by file, flagging markers with no upgrade trigger."
---

<!-- grok-harness-invoke:start -->
**Grok Build (`plugins/soleur/lib/harness.ts` `invokeSkill()`):** Read this SKILL.md in this process and run it to completion. A one-segment `soleur:<name>` in this document names a SKILL — on Grok Build, Read `plugins/soleur/skills/<name>/SKILL.md` in this process; it is not a nested tool_use. A multi-segment id such as `soleur:<domain>:<name>` names an AGENT: spawn it, never Read it, and on Grok Build spawn_subagent takes the id with its colons replaced by hyphens (`agentIdToGrokSubagentType`). **Claude Code:** Skill tool for a skill (`soleur:<name>`), Task tool with `subagent_type` for an agent. Forbidden is executing a subset, not the Read.
<!-- grok-harness-invoke:end -->

# Harvest Inline Deferral Markers

Read-only harvester for inline `SOLEUR-DEBT:` deferral markers. It makes the
deliberate shortcuts left in code grep-discoverable so a deferral cannot quietly
become permanent. It complements — never duplicates — the reactive
[technical-debt ledger](../../../../knowledge-base/project/learnings/technical-debt/README.md):

- **harvest-debt (this skill)** — SURFACE inline markers where they live, in code.
- [soleur:compound](../compound-capture/SKILL.md) — PROMOTE a worth-tracking marker into a ledger entry.
- [soleur:resolve-debt](../resolve-debt/SKILL.md) — CLOSE a ledger entry with a linked GitHub issue.

It writes nothing and closes nothing; promotion and closure stay deliberate acts.

## The marker convention

A deliberate shortcut is annotated inline, in a code comment, with the ceiling it
tops out at and the observable trigger that says "do the real thing now":

```text
// SOLEUR-DEBT: <ceiling>; <upgrade trigger>
```

- Use the all-caps `SOLEUR-DEBT:` marker — never a bare `soleur:` prefix, which
  collides with skill references like `soleur:go` throughout the docs.
- The text before the first `;` is the **ceiling** (the shortcut / current limit);
  the text after is the **upgrade trigger**.
- Example: `// SOLEUR-DEBT: global lock; switch to per-account locks if throughput matters`.
- A marker with no `;`-delimited trigger is the rot-prone case — the harvest flags
  it `no-trigger`.

This marker is the canonical, grep-discoverable form of the in-place deferral that
the `wg-when-deferring-a-capability-create-a` gate prefers over filing speculative backlog
issues. Document a deferral here, in code, and harvest makes it visible without
converting every shortcut into phantom backlog.

## Run

```bash
bash "${CLAUDE_PLUGIN_ROOT}/skills/harvest-debt/scripts/harvest-debt.sh"
```

Run from the repo root. The harvester ([harvest-debt.sh](./scripts/harvest-debt.sh)):

1. Greps tracked source for `SOLEUR-DEBT:` markers.
2. Groups hits by file and splits each on the first `;` into ceiling + trigger.
3. Flags any marker with no trigger as `no-trigger`.
4. Prints a markdown report ending with `<N> markers, <M> with no trigger.`, or
   `No SOLEUR-DEBT markers found.` when the tree is clean.

`--help` prints usage. The script is idempotent and read-only.

## After harvesting

For each surfaced marker, decide:

- **Worth tracking** → run [soleur:compound](../compound-capture/SKILL.md) to promote it
  into a `technical-debt/` ledger entry, then [soleur:resolve-debt](../resolve-debt/SKILL.md)
  to close it with a linked issue once the upgrade trigger fires.
- **`no-trigger`** → add the missing upgrade trigger to the comment, or delete the
  marker if the shortcut is now permanent and accepted.

## Scope (and its one limitation)

The harvest scans CODE comments only. Prose (`*.md` — the convention doc, plans,
specs, SKILL bodies), `node_modules`, and build output (`_site`, `dist`, `*.min.*`)
are excluded so the marker DEFINITION never self-reports as debt. This is a **path
denylist, not a semantic check**: a `SOLEUR-DEBT:` literal placed in a non-`.md`
source file purely as documentation would still be reported. Keep marker examples
in markdown.

Files in this skill

  • SKILL.md3.4 KB
  • scripts/harvest-debt.sh3.9 KB

Attribution

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

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.