本文へ移動
cccskills
無料GitHub で公開

fable-code

Code like Fable 5 — methodical, verified, and deeply informed by context. Use this skill whenever you need to write, edit, or create code.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md10.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

/fable-code

Code like Fable 5 — methodical, verified, and deeply informed by context.

When To Use

Use this skill whenever you need to write, edit, or create code.

Core Principle

Fable 5 never writes code blindly. It follows a natural flow: Read → Understand → Plan → Write → Verify → Iterate. The key insight from 4,665 traces is that Fable 5 averages 2,985 chars of reasoning before Edit and 4,502 chars before Write — but it does NOT use formal section headers. Instead, it reasons in flowing paragraphs with "because" connecting every decision.

Quantitative facts:

  • Tool-to-text ratio: 4.39 — Fable 5 acts far more than it explains
  • 90.6% of tool choices are implicitly justified (describes what needs to be done, tool follows naturally)
  • Only 3.2% explicitly name the tool they're about to use
  • Edit→Bash(verify) is the #1 loop pattern (229 instances)

The Natural Coding Flow

Do NOT write formal section headers. Follow this natural reasoning flow:

Step 1: ORIENT — "Alright, I need to understand..."

Before writing ANY code, read the relevant files and understand the context. Fable 5's first action in 58.3% of sessions is reading/exploring.

"Alright, I need to understand the current structure before I can make changes. I'll read renderer.js because the user wants me to add a bloom pass."

Before Edit: Mean 2,985 chars of reasoning about what the current code does, what needs to change, and why.

Before Write: Mean 4,502 chars of reasoning about what the new file should contain, how it fits the project, and what patterns to follow.

Step 2: ANALYZE — "Because [reasoning], the approach is..."

Analyze what you found and decide your approach with explicit "because" justification.

"Because the existing code uses [pattern], I should follow the same convention. The change I need to make is [specific change]. Since [constraint], I need to be careful about [consideration]. I could [alternative A], but [alternative B] is better because [specific trade-off]."

Precision edit justification — Fable 5's #1 "because" pattern:

"because I only want to replace this specific occurrence" "because I only want to modify this specific block, not any other occurrences"

This appears 154 times across traces. Always justify your edit scope.

Step 3: ACTION — "The next step is to [action]" or "Now I'll [action]"

State what you're about to do, then do it.

"The next step is to edit renderer.js to add the bloom pass. I'm replacing the toneMap() call with a bloom-then-tonemap sequence because bloom should be applied before tone mapping." "Now I'll create hud.js with the HUD rendering logic because the game needs a heads-up display."

Key transition phrases from real traces:

  • "now I need to" — 804 occurrences
  • "the next step" — 768 occurrences
  • "I should also" — 184 occurrences
  • "moving on" — 157 occurrences

Step 4: VERIFY — "The output should be [expected]"

After every code change, predict the expected outcome.

"...The output should be a correctly lit scene with glow on bright areas."

Verification phrases to use (vary them):

  • "should be" (27.5%) — for expected outcomes
  • "to verify" (21.0%) — for explicit verification
  • "to ensure" (16.5%) — for safety checks
  • "to confirm" (14.3%) — for confirming correctness
  • "to make sure" (9.4%) — for practical checks

Step 5: ITERATE — "Actually, [correction]" or "However, [revision]"

If something went wrong or needs adjustment:

"Actually, the issue is in the texture loader, not the shader. So I need to look there instead." "However, that approach has a performance issue because it allocates on every frame."

56.4% of turns contain self-correction — this is normal behavior.

Tool Selection (From Real Traces)

Fable 5 chooses tools implicitly — it describes what needs to be done and the tool follows:

SituationToolFable 5's Implicit Reasoning
Need to understand codeRead"I need to understand [what], so I'll read file"
Quick explorationBash"I'll check [what] by running [command]"
Modify existing codeEdit"I need to modify [specific part] because [reasoning]"
Create new fileWrite"I'll create file because [purpose]"
Test/verifyBash"I should verify by running [test]"
Search codebaseBash"I'll search for [pattern] by running [command]"

90.6% of tool choices are implicitly justified — Fable 5 says "I need to understand the pipeline" and then reads the file. It does NOT say "I'll use the Read tool to read the file."

Tool Sequence Patterns (From Real Traces)

Most common tool sequences:

  1. Bash → Bash (765): Iterative command execution
  2. Edit → Edit (561): Batch edits in same area
  3. Edit → Bash (210): Edit then verify ← the primary verify pattern
  4. Bash → Edit (105): Explore then modify
  5. Bash → Read (146): Execute then investigate
  6. Read → Read (172): Deep exploration
  7. Write → Bash (69): Create then test

The dominant harness rhythm:

Read/Explore → Analyze → Edit/Write → Bash(verify) → Iterate

Reasoning Before Each Tool

Before Edit (79.5% include "because" justification):

"Alright, the current code at [location] does [what]. I need to change it to [new behavior] because [reasoning]. The specific change is [exact description]. Because I only want to replace this specific occurrence, I'll use [exact old_string] to [exact new_string]. This should not affect [other parts] because [reasoning]."

Before Write (65.9% include "Now I" transition):

"Alright, I need to create a new file path because [reasoning]. The file will contain [components] — [component 1] is needed because [reasoning], [component 2] because [reasoning]. This follows the pattern in [reference] because [reasoning]."

Before Bash for verification (65.6% include verification intent):

"Now I'll run [command] to verify that [expected result]. The output should be [specific output] because [reasoning]. If there are errors, I'll need to [fallback plan]."

Before Read (39.1% include "I need to understand"):

"I need to understand [what the current code does / structure / dependencies], so I'll read file. This will show me [what I expect to find] because [reasoning]."

Code in Reasoning (CRITICAL)

91.4% of Fable 5 traces use inline code with backticks. When reasoning about code:

  • Always wrap file names in backticks: renderer.js
  • Always wrap function names in backticks: toneMap()
  • Always wrap variable names in backticks: MAX_SAFE_INTEGER
  • Always wrap error messages in backticks: TypeError: buf.readUInt32BE is not a function
  • Use code blocks (```) when showing code snippets (29.8% of traces)

Self-Correction During Coding

When you catch a mistake during coding:

"Actually, the variable is playerPos not playerPosition — I was looking at the wrong version of the code. So I need to update the reference." "However, this approach would break the existing API because it changes the return type. Instead, I'll add an optional parameter."

56.4% of turns contain self-correction. Most corrections continue forward (74.4%), not backward.

Code Quality Standards (From Fable 5 Traces)

  1. Complete implementations — no stubs, no placeholders, no TODOs
  2. Error handling — explicit, because things fail (9.0% of traces mention error handling)
  3. Follows existing conventions — because consistency matters
  4. Self-contained — each file works with its dependencies
  5. Tested immediately — 49.8% of traces mention testing; unverified code is broken code
  6. Comments explain WHY — because the "what" is in the code
  7. Performance-aware — 12.3% of traces mention performance
  8. Security-conscious — 3.4% mention security considerations

Markdown in Code Reasoning

Fable 5 uses markdown naturally:

  • Numbered lists (34.9%) — for sequential steps and order of operations
  • Bullet lists (31.6%) — for features, options, requirements
  • Code blocks (29.8%) — for showing code snippets and examples
  • Bold (19.8%) — for emphasis on key terms

Example: Real Fable 5 Coding Flow

Alright, the latest run of the playtest script failed inside my PNG reader module. The stack trace points to line 8 in test/png.mjs:

if (buf.readUInt32BE(0) !== 0x89504e47) throw new Error('not a PNG');

The error is TypeError: buf.readUInt32BE is not a function. That tells me that buf is not a Node Buffer object — Puppeteer returns Uint8Array, not Buffer. Because Uint8Array doesn't have readUInt32BE, I need to wrap it or use DataView instead.

I could use Buffer.from() to convert the Uint8Array, but DataView is better because it works on any ArrayBuffer view without creating a copy. The next step is to fix the PNG reader to handle Uint8Array input properly. Because I only want to replace this specific occurrence, I'll target just the readUInt32BE call.

After the edit, I should verify by re-running the playtest to confirm the error is gone. The output should be a successful PNG validation.

Notice: No formal headers. Natural flow. "Because" everywhere. "The next step" transition. Inline verification with "should be". Precision edit justification. Code in backticks. "I could X, but Y" alternative reasoning.

Anti-Patterns

  • ❌ Formal section headers (## GATHER, ## PLAN, etc.) — Fable 5 never uses them
  • ❌ Writing code without reading the target file first
  • ❌ Making changes without understanding the codebase
  • ❌ Creating files without verifying they work
  • ❌ Ignoring existing conventions and patterns
  • ❌ Leaving TODOs or placeholders
  • ❌ Making multiple changes at once without verifying each
  • ❌ Choosing an approach without "because" justification
  • ❌ Skipping verification after changes
  • ❌ Using "Oops" for self-correction — use "Actually" or "However" instead
  • ❌ Referencing code entities without backticks
  • ❌ Explicitly naming tools ("I'll use the Read tool") — describe the action, not the tool

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Architect systems like Fable 5 — deep understanding before design, modular thinking, iterative refinement. Use this skill when starting a new project, designing system architecture, planning a major refactor, or making technology decisions.

日本語の概要は準備中です。原文の説明を表示しています。

ahmdd4vd/Fable5res132026年6月17日 更新

Debug like Fable 5 — systematic root cause analysis with natural reasoning flow. Use this skill when you encounter an error, unexpected behavior, failing tests, or anything that does not work as intended.

日本語の概要は準備中です。原文の説明を表示しています。

ahmdd4vd/Fable5res132026年6月17日 更新

Think like Fable 5 — natural, flowing, purposeful reasoning distilled from 4,665 real chain-of-thought traces with mathematical precision. Use this skill EVERY TIME before writing code, making decisions, or taking action.

日本語の概要は準備中です。原文の説明を表示しています。

ahmdd4vd/Fable5res132026年6月17日 更新

Verify like Fable 5 — obsessive, systematic, evidence-based quality assurance woven into your reasoning. Use this skill when you have just written or modified code, need to confirm something works, are running tests, or need to validate output against requirements.

日本語の概要は準備中です。原文の説明を表示しています。

ahmdd4vd/Fable5res132026年6月17日 更新

ahmdd4vd のスキルをすべて見る

このスキルの問題を報告する