PluginBench
Skill
Pass
Audit score 90

gjkim-instruction

gjkim42/kanon-repo

Create and maintain gjkim_instruction.md, a root document for loop-engineering efforts.

What is gjkim-instruction?

gjkim_instruction.md is a root document that captures only minimum requirements and confirmed decisions for long-running agent loops, deliberately leaving implementation details open to avoid early decision lock-in. Use it at the start of each loop iteration to check what is decided versus still open, and whenever recording a requirement or confirmed decision.

  • Maintains a single stable source of truth for multi-iteration agent loops
  • Distinguishes between outcomes (requirements) and implementation details to prevent premature lock-in
  • Records confirmed decisions with dates and reasoning so later iterations can re-evaluate if context changes
  • Explicitly lists non-goals and deliberately-open choices to prevent silent assumptions
  • Keeps the document to one page to catch detail creep early

How to install gjkim-instruction

npx skills add https://github.com/gjkim42/kanon-repo --skill gjkim-instruction
Claude Code
Cursor
Windsurf
Cline

How to use gjkim-instruction

  1. 1.Create a file named exactly `gjkim_instruction.md` at the project root
  2. 2.Add a Goal section with one or two sentences on what the effort must achieve
  3. 3.List Minimum requirements as outcome-level statements (not implementation details)
  4. 4.Add Confirmed decisions only when the user explicitly confirms them, with date and one-line reasoning
  5. 5.Include Non-goals section to explicitly rule out outcomes the effort does not pursue
  6. 6.Add Deliberately open section to list known undecided choices so iterations do not assume answers
  7. 7.Keep the document to one page; if it grows longer, implementation details are leaking in
  8. 8.At the start of each iteration, read the document to understand what is decided versus open

Use cases

Good for
  • Starting a long-running agent loop on a complex goal and need a place to record what must be true
  • Beginning each iteration of a loop and checking what is already decided versus still open
  • Recording a user-confirmed requirement or decision so all future iterations inherit it
  • Preventing a loop from drifting into unintended outcomes by explicitly listing non-goals
  • Avoiding implementation details (library choices, schemas, file layouts) from becoming permanent constraints
Who it's for
  • Developers running multi-iteration agent loops on long-lived goals
  • Teams using loop engineering to iteratively refine solutions
  • Anyone coordinating repeated agent work that needs stable context across iterations

gjkim-instruction FAQ

What is the difference between a requirement and an implementation detail?

A requirement is an outcome that must hold true; an implementation detail is how you achieve it. If two meaningfully different implementations could both satisfy it, it is a detail — leave it out until the user confirms it as a decision.

When should I add something to Confirmed decisions?

Only when the user has explicitly confirmed it. 'Leaning toward', 'probably', or 'maybe' is not confirmation. If unsure, record it in iteration notes as unconfirmed and propose it to the user.

What should I do if an iteration needs to make a choice not in the document?

Make the best local choice, record it in that iteration's PR or notes as unconfirmed, and propose it to the user for confirmation. Do not write it into the root document until confirmed.

How do I handle a reversed decision?

Replace the entry in the document. The document describes only the current state; git history holds the old one.

What goes in the Deliberately open section?

Choices that are known to be undecided, so iterations do not silently assume an answer. Listing an option here does not endorse it — it just warns that it is still open.

Full instructions (SKILL.md)

Source of truth, from gjkim42/kanon-repo.


name: gjkim-instruction description: >- Create and maintain gjkim_instruction.md, the root document for a loop-engineering effort. The document holds only the minimum requirements and confirmed decisions, and deliberately leaves everything else open so that later iterations are not locked into early guesses. Use whenever the user mentions gjkim_instruction.md, a root document or root doc for a loop, loop engineering, starting a long-running agent loop on a goal, or asks to record a requirement or a confirmed decision for such an effort. Also use at the start of a loop iteration to check what is already decided versus still open.

gjkim_instruction.md — Root Document for Loop Engineering

Why this document exists

Loop engineering runs many short agent iterations against one long-lived goal. Each iteration starts with little context, so it needs one stable place that says what must be true and what has already been decided. That place is gjkim_instruction.md, kept at the root of the project the loop works on.

The failure mode this document guards against is early decision lock-in. Whatever is written in the root document, every later iteration inherits as if it were a requirement. If unconfirmed details get written down — a library choice, a schema, a file layout that was only a first guess — wrong guesses become permanent and the loop loses the freedom to find better answers. So the document records only two kinds of content, and treats everything else as deliberately open.

What goes in

  • Goal: one or two sentences on what the effort must achieve.
  • Minimum requirements: the smallest set of outcomes that must hold true for the effort to succeed. Outcome-level, not implementation-level.
  • Non-goals: outcomes the effort explicitly does not pursue, so iterations do not drift into them. A non-goal is a confirmed "we are not doing this", not merely something undecided — undecided things belong under "Deliberately open".
  • Confirmed decisions: only decisions the user has explicitly confirmed. Each entry carries the date it was confirmed and a one-line why, so a later iteration can tell whether the reason still applies.
  • Deliberately open (optional): choices that are known to be undecided, listed so iterations do not silently assume an answer. Listing an option here does not endorse it.

What stays out

  • Implementation details that were not explicitly confirmed: libraries, frameworks, schemas, file layouts, API shapes, deployment targets.
  • Task lists, progress logs, iteration status. Those belong in issues, PRs, or iteration notes — the root document describes the destination, not the journey.
  • Speculative designs or options under consideration. Mentioning them at most under "Deliberately open", never as requirements or decisions.
  • Anything derivable from the code itself.

Litmus test for requirement vs. detail: could two meaningfully different implementations both satisfy it? If only one implementation can, it is a detail — leave it out until the user confirms it as a decision.

Template

Create the document at the project root, named exactly gjkim_instruction.md:

# <effort name>

Root document for loop engineering. Read this first in every iteration.
Anything not written here is an open choice.

## Goal

<one or two sentences>

## Minimum requirements

- <outcome that must hold>

## Non-goals

- <outcome explicitly not pursued>

## Confirmed decisions

- <decision> — confirmed <YYYY-MM-DD>. Why: <one line>

## Deliberately open

- <choice known to be undecided; do not assume an answer>

Omit the "Non-goals" or "Deliberately open" section when there is nothing useful to warn about. Keep the whole document around one page; if it grows past that, details are leaking in — prune them.

Maintaining the document

  • Add a decision only when the user has explicitly confirmed it. "Leaning toward", "probably", or "maybe" is not confirmation.
  • Record a non-goal only when the user has explicitly ruled it out. An option nobody has decided on yet stays under "Deliberately open".
  • When an iteration must make a choice that is not in the document, make the best local choice, record it in that iteration's PR or notes as unconfirmed, and propose it to the user for confirmation. Do not write it into the root document yet.
  • When a decision is reversed, replace the entry. The document describes only the current state; git history holds the old one.
  • When updating, preserve existing requirements and decisions unless the user explicitly changes them.