Process Inbox
telegramdesktop/tdesktop
Process the local ignored ai-tdesktop inbox into durable, independently testable Telegram Desktop task records while task execution worktrees remain active.
Autonomous iterative thinking loop - processes active topics using rotating analytical moves (ACH, Bayesian updating, steelmanning, cross-domain bridging, implication checks) and persists reasoning…
$ npx skills add Abilityai/cornelius --skill incubation-loop -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Abilityai/cornelius incubation-loop --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Abilityai/cornelius.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/incubation-loop .claude/skills/incubation-loop && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "incubation-loop" agent skill from https://github.com/Abilityai/cornelius/tree/main/.claude/skills/incubation-loop into .claude/skills/incubation-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "incubation-loop", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Abilityai/cornelius/tree/main/.claude/skills/incubation-loopType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Abilityai/cornelius --skill incubation-loop -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Abilityai/cornelius incubation-loop --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Abilityai/cornelius.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/incubation-loop .agents/skills/incubation-loop && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "incubation-loop" agent skill from https://github.com/Abilityai/cornelius/tree/main/.claude/skills/incubation-loop into .agents/skills/incubation-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "incubation-loop", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Abilityai/cornelius --skill incubation-loop -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Abilityai/cornelius incubation-loop --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Abilityai/cornelius.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/incubation-loop .cursor/skills/incubation-loop && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "incubation-loop" agent skill from https://github.com/Abilityai/cornelius/tree/main/.claude/skills/incubation-loop into .cursor/skills/incubation-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "incubation-loop", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Abilityai/cornelius.git --path .claude/skills/incubation-loop--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Abilityai/cornelius --skill incubation-loop -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Abilityai/cornelius incubation-loop --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Abilityai/cornelius.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/incubation-loop .gemini/skills/incubation-loop && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "incubation-loop" agent skill from https://github.com/Abilityai/cornelius/tree/main/.claude/skills/incubation-loop into .gemini/skills/incubation-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "incubation-loop", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Abilityai/cornelius incubation-loopInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Abilityai/cornelius --skill incubation-loop -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Abilityai/cornelius.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/incubation-loop .github/skills/incubation-loop && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "incubation-loop" agent skill from https://github.com/Abilityai/cornelius/tree/main/.claude/skills/incubation-loop into .github/skills/incubation-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "incubation-loop", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Abilityai/cornelius --skill incubation-loop -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Abilityai/cornelius incubation-loop --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Abilityai/cornelius.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/incubation-loop .opencode/skills/incubation-loop && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "incubation-loop" agent skill from https://github.com/Abilityai/cornelius/tree/main/.claude/skills/incubation-loop into .opencode/skills/incubation-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "incubation-loop", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
incubation-loopAutonomous iterative thinking loop - processes active topics using rotating analytical moves (ACH, Bayesian updating, steelmanning, cross-domain bridging, implication checks) and persists reasoning…
Incubation Loop is an agent skill from Abilityai/cornelius. Autonomous iterative thinking loop - processes active topics using rotating analytical moves (ACH, Bayesian updating, steelmanning, cross-domain bridging, implication checks) and persists reasoning state across scheduled runs
Its SKILL.md is about 10k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: AI-powered second brain template for Claude Code + Obsidian. The licence is MIT.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fd5e9a4. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteGrepGlobBashWebSearchSkillFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Incubation Loop loads about 10k tokens when it runs. Until then it costs about 60 tokens; SKILL.md has 3,867 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Write, Grep, Glob, Bash, WebSearch, SkillAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Abilityai/cornelius at commit fd5e9a4, republished under its MIT licence (© Abilityai). 3,867 words, ~10,304 tokens.
.claude/skills/incubation-loop/SKILL.md (or your agent's skills folder).ℹ️ First, set expectations: before anything else, print one short line with this skill's version and its most recent change — the top entry of
metadata.changelogabove — e.g.incubation-loop vX.Y — recent: <summary>. Then proceed.
Autonomous thinking engine. Each scheduled run advances all active thinking topics by one analytical move, persisting reasoning state across runs until convergence.
Continuous intellectual iteration on open questions. Uses a rotating set of research-validated analytical moves (ACH, Bayesian updating, dialectical steelmanning, cross-domain bridging) to build toward well-grounded conclusions - without requiring human presence in each cycle.
Design principle: Each run does one move per topic. Depth accumulates across runs. No single run tries to "solve" the question.
| Source | Location | Read | Write | Description |
|---|---|---|---|---|
| Thinking Registry | Brain/05-Meta/Thinking/THINKING-REGISTRY.md | ✓ | ✓ | Active topics + status |
| Thinking Files | Brain/05-Meta/Thinking/[topic-slug].md | ✓ | ✓ | Per-topic reasoning journal |
| Local Brain Search | resources/local-brain-search/ | ✓ | Semantic search for KB evidence | |
| Permanent Notes | Brain/02-Permanent/ | ✓ | Primary evidence source | |
| Session Changelogs | Brain/05-Meta/Changelogs/ | ✓ | Run log |
Brain/05-Meta/Thinking/THINKING-REGISTRY.md/domain-watch - invoked by the Starvation Floor (Step 1a) when the active queue is empty, to formulate and activate a new topic from the domains under surveillance. Called by its unversioned name so its fixes propagate.date '+%Y-%m-%d'Read Brain/05-Meta/Thinking/THINKING-REGISTRY.md. Parse all topics with status: active.
If registry does not exist, create it:
---
created: YYYY-MM-DD
updated: YYYY-MM-DD
created_by: claude-sonnet-4-6
updated_by: claude-sonnet-4-6
agent_version: 01.25
---
# Thinking Registry
Active questions under continuous analysis.
| Topic Slug | Central Question | Status | Runs | Last Run |
|------------|-----------------|--------|------|----------|If no active topics found, do NOT exit - run the Starvation Floor (Step 1a) so the thinking engine never idles.
The thinking engine must never sit idle. If Step 1 found no active topics:
/domain-watch (cross-skill). Its Starvation Floor guarantees at least one new topic is activated into the Thinking Registry, formulated from the domains under surveillance.Brain/05-Meta/Thinking/THINKING-REGISTRY.md and parse status: active topics again./domain-watch still produced no topic (e.g. no domains configured), log to changelog and exit cleanly.This makes topic generation autonomous: when human-seeded questions run out, the agent proactively formulates its own next question from the watched domains rather than going quiet. Crystallization of any resulting conclusion stays manual (human judgment).
Read Brain/05-Meta/Thinking/[topic-slug].md.
Parse frontmatter fields:
run_count (required) - how many iterations completed; drives move rotationlast_run (required) - date of last iterationstatus (required) - active / converged / crystallized / retiredlast_move (optional, written by loop) - which move was applied in the most recent run; informationalconvergence_count (optional, written by loop) - number of consecutive runs at or near convergence criteria; used by framework-exhaustion detection in Step 7topic (set at seeding) - the central question being analyzedParse from body:
current_hypotheses - list with confidence scores (from the most recent run's "Updated Hypotheses" table)Rotate through this sequence. Position = run_count mod 6:
| Position | Move | Research Basis |
|---|---|---|
| 0 | ACH Audit | Heuer (CIA) - Analysis of Competing Hypotheses |
| 1 | Bayesian Update | Information theory - explicit confidence tracking |
| 2 | Steelman Opposition | Socratic dialectic - steel-man the opposite |
| 3 | Cross-Domain Bridge | Consilience method - what does an unrelated field say? |
| 4 | Implication Check | Falsificationism (Popper) - if true, what follows? Is that true? |
| 5 | Assumption Audit | Intelligence SAT - which premises are load-bearing and shakiest? |
Use Local Brain Search to find relevant notes:
cd $PROJECT_ROOT
# --no-track: this is an autonomous loop; its reads must NOT train q-values (scope-primitive learning hygiene)
python3 resources/local-brain-search/search.py "[central question]" --limit 8 --mode spreading --no-track 2>/dev/null
python3 resources/local-brain-search/search.py "[leading hypothesis]" --limit 5 --mode spreading --no-track 2>/dev/nullEnvironment note (Trinity container): the bare python3 .../search.py form fails on hosts without system-level faiss (ModuleNotFoundError: No module named 'faiss') - e.g. the Trinity scheduled-run container. Use the wrapper ./resources/local-brain-search/run_search.sh "[query]" [same flags] instead; it routes through the running daemon (or a venv fallback) and honors BRAIN_READ_SCOPE (defaults fail-closed to core). Same flags apply (--mode static|spreading, --threshold, --no-track, --limit).
Mode fallback for narrow technical topics: Spreading activation propagates through the graph's highest-centrality hubs, so for narrow/technical questions (e.g. AI-architecture, distributed-systems topics) it can return the emotional/neuroscience mega-hubs ([[Dopamine]], [[Flow is a selfless state]], [[In Buddhism - Self is an Illusion]]) as top hits - noise, not evidence. If spreading results are dominated by off-topic hubs, re-run the same queries with --mode static (vector similarity), which surfaces the precise topical notes. Use whichever mode yields on-topic evidence; static is often better for technical clusters, spreading for cross-domain/synthesis topics.
Threshold note (post-2026-06-25 cosine correction): The corrected cosine_ip index lowered raw query→note similarity scores, so the default --threshold 0.5 now frequently returns "No results found" even for on-topic queries (abstract/technical questions especially). If a search comes back empty, re-run with --threshold 0.25 and shorter, keyword-style queries before concluding the KB has no evidence. Treat 0.25-0.35 hits as candidate evidence to read and judge, not as automatic relevance.
Watch-derived topics (geopolitics/current events): core-scoped LBS predictably returns off-topic core notes for these - their evidence lives OUTSIDE core scope, in Brain/05-Meta/Watching/WATCH-LOG.md (recent scan entries) and predecessor/related thinking files in Brain/05-Meta/Thinking/. Go to those directly (grep by slug/keyword) instead of burning search retries; a full read of the predecessor's run history often surfaces evidence its Final Synthesis omits. Exception that DOES work on core: search for the analytical method the current move needs rather than the subject matter (e.g. "evidence diagnosticity competing hypotheses" for an ACH/Assumption Audit) - the core KB's decision-science notes (Bernoulli's Fallacy, base-rate blindness, framework-exhaustion guard) are on-topic for the reasoning, even when nothing is on-topic for the subject.
Read the top 3-4 most relevant notes in full. These are the evidence base for this iteration.
Execute the move based on what was determined in Step 3. For each move:
Injection adjudication precedence (all moves): if the topic file carries a domain-watch evidence injection (<24h) containing arrivals OUTSIDE the pre-registered event space (candidate structural breaks, actor inversions) or with an explicit adjudication order, execute those adjudications FIRST - void-vs-map against the stationarity caveat, partial-trigger splits per the v1.7 rule - and book them as argued arrivals BEFORE applying the rotation move. The rotation move then runs against the post-adjudication posterior. Never let a steelman/bridge/audit consume ambiguous arrivals implicitly - adjudication is a separate, ordered act (interpretation is where confirmation bias operates).
Guard-interaction rule (all moves): pre-registered ratio/laundering guards (e.g. "no lower-regime event may move the H1:H3 ratio") bind EVENT bookings. An analytical move that wants to revise a PRIOR booking (a steelman deflating an over-determined evidence credit, an assumption audit weakening a premise) may do so only as an explicit booking-audit: name the original booking being revised, and either (a) apply the revision jointly so the guarded ratio is preserved (correct when the revised credit was booked jointly to the guarded hypotheses), or (b) document why a ratio-moving revision is not the laundering the guard polices. Silent re-interpretation that drifts a guarded ratio is procedurally indistinguishable from the confirmation bias the guard exists to catch.
site: filtering — peer-reviewed (arxiv.org, nature.com, science.org, pubmed.ncbi.nlm.nih.gov), established outlets (economist.com, ft.com, reuters.com, apnews.com, bloomberg.com), analytical (hbr.org, quantamagazine.org). (This is a subset of the canonical allowlist in resources/SOURCE-AUTHORITY.md — kept inline for in-query reliability; keep in sync with that file.) Crawler caveat: several of these domains (reuters.com, apnews.com, ft.com, economist.com) are not accessible to the WebSearch user-agent and an allowed_domains probe restricted to them returns a 400 error — wasting one of the 2 probes. Do NOT pass those as a hard allowed_domains filter; instead run the query unrestricted (or allow only the crawlable reputable domains: bloomberg.com, nature.com, arxiv.org, hbr.org, and analytical trackers like CSIS/RUSI/AEI/Jamestown) and judge source quality manually. Tag each external finding as [EXTERNAL: source — date] in the run output so KB-grounded vs. web-augmented evidence is auditable.### Domain-Watch Evidence Injection block dated within ~24h), score against the injection's tagged [EXTERNAL] items instead of firing new web probes - re-probing freshly-observed state duplicates rather than tests. Note the banked budget explicitly in the run output.Append to Brain/05-Meta/Thinking/[topic-slug].md:
### Run [N]: [Move Name] - [YYYY-MM-DD]
**KB Evidence Consulted:**
- [[Note A]] - [one line on relevance]
- [[Note B]] - [one line on relevance]
**Analysis:**
[2-4 paragraphs of actual reasoning from the move]
**Updated Hypotheses:**
| Hypothesis | Confidence | Change |
|-----------|------------|--------|
| H1: [statement] | X% | ↑/↓/→ from Y% |
| H2: [statement] | X% | ↑/↓/→ from Y% |
**Current Best Answer:** [1-2 sentences - the leading position after this run]
**Open Questions for Next Run:** [What remains unresolved or most worth probing]Update the frontmatter: updated, updated_by, run_count, last_run.
A topic has converged when ANY of the following holds:
Standard convergence (all four must be true):
run_count >= 4 (minimum 4 cycles)Framework exhaustion (alternate path - triggers automatic convergence):
run_count >= 10 AND(The 5-run window INCLUDES the current run, evaluated after its move completes - a flip at run N makes the trigger first testable at run N+4, not N+5. Empty-arrival-window zero-drift runs do NOT count toward the 5-run window: a run that booked posterior = prior under the Bayesian empty-window rule - because nothing arrived, not because evidence failed to discriminate - is stasis by discipline, not by exhaustion. Gated-arrival zero-drift runs are the same case: a run where an arrival DID land but booked nothing because its entire booking authority sits at a committed future read-point (e.g. a day-N leg) is also stasis by discipline and does not count toward the window. Context-class arrivals are the same case too: a run whose only arrivals belong to streams the ledger commits to never booking (context-only rows, rhetoric-class items under a cheap-talk rule) books zero drift by discipline, not by exhaustion, and does not count toward the window.)
When framework exhaustion is detected:
This guards against the "Confirmation Bias as Hyper-Precise Prior" failure mode: an analysis that produces ever-finer confidence scores on a distinction that the evidence has already shown to be analytically empty.
If converged (either path):
status: converged in the thinking file frontmatter**CONVERGED** - Ready for crystallization via /manage-thinking-topics crystallize [slug]convergedIf not converged: continue to next topic.
Canonical Final Synthesis block (appended once when status flips to converged):
---
## Final Synthesis
**Conclusion:** [1-2 paragraphs in plain prose - the substantive answer]
**Confidence:** X% on H[N] (and any co-leading hypotheses)
**Key evidence:**
- [[Note A]] - [why it mattered]
- [[Note B]] - [why it mattered]
- [[Note C]] - [why it mattered]
**Convergence path:** [Standard | Framework exhaustion] after [N] runs
**Remaining uncertainty:** [1 paragraph - what's known to be unknown; what could change this]
**Related topics:** [[other-converged-slug]] (if causally connected)This block is the authoritative source for crystallization. Crystallize mode reads this section first, falls back to scanning the last run's "Current Best Answer" only if absent (legacy topics).
Update Brain/05-Meta/Thinking/THINKING-REGISTRY.md:
Increment run count for each processed topic
Update last_run date
Update status (active → converged where applicable)
On convergence, MOVE the topic's row from Active Topics to Converged (Ready for Crystallization) using this exact row shape:
| [slug] | [runs] | [one-sentence conclusion, ≤200 chars] → [[slug]] | [YYYY-MM-DD] |Registry size discipline (hard rules — the registry is an index, not a journal):
created, updated, created_by, updated_by, agent_version, and a single last_incubation_run field of AT MOST one line (~200 chars): timestamp + topic(s) + move + resulting status. Example:
last_incubation_run: 2026-07-03 07:00 UTC — agent-zero-trust-primitive Run 1 ACH Audit, still activelast_incubation_run in place each run. NEVER append last_incubation_run_prior_* or any other run-history keys.## Final Synthesis block, which crystallize mode reads directly.Write to Brain/05-Meta/Changelogs/CHANGELOG - Incubation Loop YYYY-MM-DD-HHMM.md (UTC run-slot suffix, e.g. -1000 — the loop runs multiple times per day, so date-only names collide; this matches the existing files on disk):
Run-slot clock caveat (Trinity container): the container's date can lag the platform's scheduled-run timestamp by hours. Take HHMM from the Execution Context timestamp (or the next 2h slot after the newest existing changelog for today), not from date — otherwise the suffix collides with an already-written file.
---
created: YYYY-MM-DD
updated: YYYY-MM-DD
created_by: claude-sonnet-4-6
updated_by: claude-sonnet-4-6
agent_version: 01.25
---
# Incubation Loop Session: YYYY-MM-DD
## Topics Processed
| Topic | Move Applied | Confidence Shift | Status |
|-------|-------------|-----------------|--------|
| [slug] | [move name] | [leading H]: Y% → Z% | active/converged |
## Notable Shifts
[Any hypothesis revisions, convergences, or surprising KB evidence]
## Converged Topics (Ready for Crystallization)
[List any topics that reached convergence this run]To add a topic to the loop, create Brain/05-Meta/Thinking/[topic-slug].md:
---
created: YYYY-MM-DD
updated: YYYY-MM-DD
created_by: claude-sonnet-4-6
updated_by: claude-sonnet-4-6
agent_version: 01.25
topic: "[exact question being analyzed]"
run_count: 0
last_run: null
last_move: null # optional - written by loop after each run
convergence_count: 0 # optional - written by loop; tracks consecutive runs meeting convergence criteria
status: active
---
# Thinking: [Topic Title]
## Central Question
[The exact question. Precise framing matters - ambiguous questions stay ambiguous.]
## Why This Question Matters
[1-2 sentences on stakes or relevance]
## Initial Hypotheses
| Hypothesis | Initial Confidence | Basis |
|-----------|-------------------|-------|
| H1: [statement] | X% | [prior knowledge or intuition] |
| H2: [statement] | X% | [prior knowledge or intuition] |
## Known Evidence (Pre-Run)
[Any notes or sources already known to be relevant]
## Constraints and Assumptions
[What are you taking as given? What's out of scope?]
---
*[Analytical runs will be appended below by the incubation loop]*Then add to THINKING-REGISTRY.md:
| [topic-slug] | [central question] | active | 0 | null |When a topic reaches status: converged, the human should:
/synthesize-insights [topic-slug] to graduate conclusions to a permanent notestatus: crystallizedDo not automate crystallization - judgment calls about what conclusions deserve permanence belong to the human.
| Error | Recovery |
|---|---|
| Registry missing | Create empty registry, log, exit cleanly |
| No active topics | Run Starvation Floor (Step 1a) - invoke /domain-watch to self-seed a topic from watched domains; only log and exit cleanly if it too produces nothing |
| KB search returns empty | Try alternate search terms from hypothesis text; if still empty, note in run log and skip KB-grounding for this move |
| Thinking file missing for active topic | Log warning in registry, skip topic |
| Run exceeds 45 minutes | Process topics in order; skip remaining, log which were skipped |
Brain/05-Meta/Changelogs/After completing this skill's primary task, consider tactical improvements:
git add .claude/skills/incubation-loop/SKILL.mdgit commit -m "refactor(incubation-loop): <brief improvement>"© Abilityai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/incubation-loop of Abilityai/cornelius.
Open the folder on GitHubat commit fd5e9a4
Incubation Loop next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Incubation Loop this skillAbilityai/cornelius | 109 | — | ~10k | Automated safety check: Notes | MIT | |
| Process Inboxtelegramdesktop/tdesktop | 33k | 2 repos | ~4.5k | Automated safety check: Pass | GPL-3.0 | |
| Nutrient Document Processingaffaan-m/ECC | 274k | 4 repos | ~1.5k | Automated safety check: Pass | MIT | |
| Process Mapperalirezarezvani/claude-skills | 28k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Iterative Retrievalaffaan-m/ECC | 274k | 7 repos | ~1.6k | Automated safety check: Pass | MIT | |
| Iterative Retrievalaffaan-m/ECC | 274k | 2 repos | ~1.1k | Automated safety check: Pass | MIT |
telegramdesktop/tdesktop
Process the local ignored ai-tdesktop inbox into durable, independently testable Telegram Desktop task records while task execution worktrees remain active.
affaan-m/ECC
Process, convert, OCR, extract, redact, sign, and fill documents using the Nutrient DWS API.
alirezarezvani/claude-skills
A skill your agent uses when a BizOps lead, COO, or process-improvement owner needs to document an end-to-end business process (procurement, employee onboarding, incident handoff…
affaan-m/ECC
Pattern for progressively refining context retrieval to solve the subagent context problem.
affaan-m/ECC
サブエージェントのコンテキスト問題を解決するために、コンテキスト取得を段階的に洗練するパターン. An agent skill from affaan-m/ECC.
affaan-m/ECC
서브에이전트 컨텍스트 문제를 해결하기 위한 점진적 컨텍스트 검색 개선 패턴. An agent skill from affaan-m/ECC.
Abilityai/cornelius
Generate images using Google's Nano Banana (Gemini 2.5 Flash Image).
Abilityai/cornelius
Protocol for creating dated changelog files after significant agent sessions.
Abilityai/cornelius
Create long-form articles from knowledge base insights. An agent skill from Abilityai/cornelius.
Abilityai/cornelius
Framework for distinguishing research findings from hypotheses and speculative synthesis.
Abilityai/cornelius
Extract the transcript from a YouTube video by URL or video ID.
Abilityai/cornelius
Standard format for capturing and documenting insights in the knowledge base.
Autonomous iterative thinking loop - processes active topics using rotating analytical moves (ACH, Bayesian updating, steelmanning, cross-domain bridging, implication checks) and persists reasoning…. Incubation Loop is an agent skill from Abilityai/cornelius.
Run `npx skills add Abilityai/cornelius --skill incubation-loop -a claude-code`. Or copy the skill folder (.claude/skills/incubation-loop in Abilityai/cornelius) into .claude/skills/incubation-loop in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Abilityai/cornelius --skill incubation-loop -a codex`. Or copy the skill folder (.claude/skills/incubation-loop in Abilityai/cornelius) into .agents/skills/incubation-loop in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Abilityai/cornelius --skill incubation-loop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/incubation-loop, .gemini/skills/incubation-loop, .github/skills/incubation-loop and .opencode/skills/incubation-loop in your project.
Going by SKILL.md and its folder, Incubation Loop needs the command-line tools its instructions call (python3 and git). Its frontmatter pre-approves these tools: Read, Write, Grep, Glob, Bash, WebSearch, Skill.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Incubation Loop is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 10k tokens (SKILL.md is roughly 41k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Incubation Loop: Process Inbox (telegramdesktop/tdesktop, 33k stars), Nutrient Document Processing (affaan-m/ECC, 274k stars), Process Mapper (alirezarezvani/claude-skills, 28k stars) and Iterative Retrieval (affaan-m/ECC, 274k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Abilityai (a GitHub organization) maintains it in Abilityai/cornelius, which has 109 GitHub stars. The repository holds 56 skills in this directory. The repository was last updated on September 22, 2026.
Source: Abilityai/cornelius on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.