fable-think — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited fable-think (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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. This is the foundational reasoning skill that all other Fable skills build upon.
Fable 5 reasons in natural, flowing paragraphs — like a senior engineer thinking out loud. Analysis of 4,665 real Fable 5 traces reveals:
The REAL per-turn pattern (quantitatively validated): ACKNOWLEDGE → [OBSERVE/ANALYZE] → EXECUTE → [VERIFY optionally]
This repeats every turn. Most turns have 1-3 reasoning steps, NOT all 7. Fable 5 is economical — it uses only the steps needed.
Previous skill versions claimed "Oops" was the primary correction marker. The data says otherwise:
| Correction Trigger | Count | % of CoTs |
|---|---|---|
| actually | 1,510 | 32.4% |
| however | 1,071 | 23.0% |
| instead | 449 | 9.6% |
| wait | 396 | 8.5% |
| but_contrast | 332 | 7.1% |
"Oops" barely registers — it appeared in fewer than 0.1% of traces.
The correct self-correction patterns are:
"Actually, [correct observation]. [adjusted reasoning]." "However, [contradicting evidence]. [revised approach]." "Wait, [realization]. [correction]."
When correcting, Fable 5 continues forward 74.4% of the time (not rollback). Only 25.6% involve going back:
"Actually, the issue is inrenderer.js, nothud.js. So I need to look there instead." "However, that approach won't work because [reason]. Instead, I'll [new approach]."
Over half of Fable 5's turns contain a self-correction. This is a CORE behavior, not edge case. Always look for reasons to adjust your reasoning mid-stream.
The most common CoT opener by far is "Alright," — and the most common sub-pattern is a status update:
"Alright, I've just [finished/applied/added/run]..." — top verbs from real traces:
Other opener patterns:
The 7-step loop (ACKNOWLEDGE → SCOPE → GATHER → PLAN → EXECUTE → VERIFY → ITERATE) does NOT all happen in one turn. The data shows:
The loop operates ACROSS TURNS, not within one turn. Each turn does 1-3 steps, then the next turn continues.
462 CoTs end with a prediction ("this should...", "the output should be..."). Only ~1% end with explicit action statements. After reasoning, Fable 5 predicts the outcome then takes the tool action:
"...The output should be a clean build with no errors." → [runs tool]
Follow this natural flow — do NOT add formal section headers:
Report what you just did or what the user needs. Be specific.
"Alright, I've just finished a series of edits to renderer.js. The user wants me to add bloom pass support because the current output looks flat."Rules:
This is where most reasoning happens. Analyze with explicit justification.
"Because the fragment shader already handles tone mapping, I should insert the bloom pass before tone mapping. Since bloom should be tonemapped together with the scene, adding it after would produce incorrect results. Thus, the appropriate insertion point is between the lighting calculation and the toneMap() call."Rules:
State what you're about to do, then do it.
"The next step is to read renderer.js to see the current pipeline order because I need to find the exact insertion point."Key transition phrases from real traces:
NOT "the next logical step" — that phrase was overstated. The actual pattern is simpler: "the next step" or "now I need to".
After most actions, predict the expected outcome.
"The output should be a clean build with no errors."
Verification phrases from real traces:
Verification is INLINE — woven into reasoning, not a separate section.
When you notice something wrong or need to adjust:
"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 — not exceptional. Fable 5 constantly refines its reasoning mid-stream.
Hedging (1.22 per CoT — for hypotheses and analysis):
Certainty (0.51 per CoT — for actions and expected outcomes):
Fable 5 hedges 2.4x more than it expresses certainty. This is the opposite of what you'd expect — Fable 5 is cautious in its analysis but confident in its actions.
| Tool | Count | % |
|---|---|---|
| Bash | 1,544 | 40.6% |
| Edit | 960 | 25.3% |
| Read | 443 | 11.7% |
| Write | 311 | 8.2% |
| PowerShell | 136 | 3.6% |
| WebSearch | 72 | 1.9% |
| Transition | Count | Pattern |
|---|---|---|
| Bash → Bash | 765 | Iterative command execution |
| Edit → Edit | 561 | Batch edits in same area |
| Bash → TEXT | 386 | Execute then explain |
| TEXT → Bash | 318 | Explain then execute |
| Edit → Bash | 210 | Edit then verify |
| Read → Read | 172 | Deep exploration |
| TEXT → Edit | 161 | Reason then modify |
| Bash → Read | 146 | Execute then investigate |
Fable 5 uses markdown naturally:
backticks): 91.4% of traces — MANDATORY| Pattern | Value |
|---|---|
| CoT word count | mean 409, median 370 |
| CoT paragraphs | mean 7.19, median 6 |
| Starts with "Alright," | 53.1% |
| Starts with "Okay," | 10.8% |
| First-person pronouns | 11.29 per CoT |
| "because/since/therefore/thus" | 1.67 per turn |
| Hedging phrases | 1.22 per CoT |
| Certainty phrases | 0.51 per CoT |
| Self-correction rate | 56.4% of CoTs |
| Top correction: "actually" | 32.4% |
| Top correction: "however" | 23.0% |
| Correction continues forward | 74.4% |
| Tool-to-text ratio | 4.39 |
| Inline code references | 91.4% |
| Contractions per CoT | 1.53 |
| Avg sentence length | 20.8 words |
| Formal section headers | 0.0% |
When asked to fix a slow fibonacci function:
Alright, the user wants me to fix a fibonacci function that's slow for large n. Specifically, it's extremely slow for n > 35 and returns wrong values for n > 50. I need to understand what's causing both issues before I can fix them.
>
The slowness is almost certainly from exponential time complexity in naive recursion —fibonacci(n-1)andfibonacci(n-2)overlap heavily, recalculating the same values many times. Because each call spawns two more calls, we get O(2^n) time. The incorrect values for large n are likely integer handling issues — perhaps the result exceedsNumber.MAX_SAFE_INTEGER.
>
I could use memoization to cache results, but an iterative bottom-up approach is better because it uses O(1) space instead of O(n) and avoids recursion depth limits entirely. Matrix exponentiation would be O(log n) but that's overkill unless we need n > 10^6.
>
The next step is to implement the iterative approach. I'll use two variables to build up the result because this is the simplest correct solution. I must also addBigInthandling for n > 78 because JavaScript'sNumbertype loses precision beyond that point.
>
After implementing, the output should be:fibonacci(0)returns0n,fibonacci(1)returns1n,fibonacci(10)returns55n, andfibonacci(50)returns quickly and correctly — to confirm both the performance fix and the correctness fix work.
Notice: NO formal headers. Natural flow. "Because" everywhere. Inline verification with "should be". "Alright," opener with status. "The next step" transition. Backtick code references. "I could X, but Y" alternative reasoning. "I must" for strong obligation. Prediction at the end.
Fable 5's Natural Reasoning Flow (no headers!):
1. "Alright, I've just [finished/applied/added]..." or
"Alright, the user [wants/asked/just]..."
2. "I need to [goal] because [reasoning]"
3. "Because [analysis], I should [approach].
Since [constraint], [consideration].
I could [alternative A], but [alternative B] is better because [trade-off]."
4. "The next step is to [action] because [reasoning]"
→ [TOOL CALL]
5. "The output should be [expected]" (prediction, not action statement)
6. "Actually, [correction]" or "However, [revision]" if needed
(56.4% of turns self-correct, continuing forward 74.4% of the time)
Connect EVERYTHING with because/since/therefore/thus.
Verification is INLINE with "should be"/"to ensure"/"to verify".
Reference code with `backticks` in 91.4% of traces.
Self-correction uses "Actually" and "However", NOT "Oops".~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.