This skill should be used when the user wants to learn a new domain from scratch using structured cognitive phases, or when they say "dln", "dln list", "dln reset [domain]", "learn [domain]", "teach me [domain] from zero", "cold-start [domain]", "start learning [domain]", "continue learning [domain]", "resume [domain]", "pick up [domain]", "review [domain]", or reference the Dot-Linear-Network framework. It orchestrates three phase skills (dln-dot, dln-linear, dln-network) based on the learner's current phase stored in a Notion database, routing them to the appropriate learning protocol for their level of understanding.
A meta-learning skill that accelerates cold-start learning in any new domain using the Dot-Linear-Network (DLN) cognitive topology framework. This skill routes learners to the appropriate phase skill based on their tracked progress.
Learning follows three cognitive phases, each requiring a different teaching strategy:
| Phase | Mental State | Teaching Ratio | Goal |
|---|---|---|---|
| Dot | Isolated facts, no connections | 70% delivery / 30% elicitation | Build concept nodes and basic causal chains |
| Linear | Procedural chains, domain-specific | 50% delivery / 50% elicitation | Discover shared factors across chains, build transferable understanding |
| Network | Compressed model, cross-domain links | 20% delivery / 80% elicitation | Stress-test, refine, and compress the learner's mental model |
The framework is domain-agnostic — it works for options pricing, compiler design, immunology, or any domain where the learner starts from zero.
All learner state is persisted in the DLN Profiles database in Notion (under Maekar). Database IDs are owned by the dln-sync agent — the orchestrator and phase skills reference the database by name only.
| Property | Type | Purpose |
|---|---|---|
| Domain | title | The learning domain (e.g., "Options Pricing") |
| Phase | select | Current phase: Dot, Linear, or Network |
| Last Session | date | Timestamp of most recent session |
| Session Count | number | Total sessions in this domain (authoritative source) |
| Next Review | date | Computed review date — when this domain should next be reviewed |
| Review Interval | number | Current spacing interval in days (starts at 1, expands on successful review) |
All learning content lives in the domain page body, not column properties. The page body has two sections:
Knowledge State — Persistent header updated at every teaching boundary. Contains:
## Concepts — Concept nodes learned (Dot phase output)## Chains — Procedural sequences built (Dot phase output)## Factors — Shared structures discovered (Linear phase output)## Compressed Model — Latest model statement (Network phase output)## Interleave Pool — Concepts and factors eligible for interleaving (introduced in a prior session and passed initial comprehension check). Maintained by phase skills to enable cross-topic practice.## Calibration Log — Per-concept confidence ratings, gate predictions vs actual outcomes, and calibration trend over time. Used by phase skills to detect overconfidence/underconfidence and adjust teaching intensity.## Load Profile — Baseline cognitive load observations (working batch size, hint tolerance, recovery pattern) and per-session load history. Used by Dot phase for dynamic batch sizing and by all phases for load-aware pacing.## Open Questions — Unresolved gaps## Weakness Queue — Priority-ranked queue of items the learner has not mastered. Rewritten (not appended) at each teaching boundary. Derived from mastery table statuses. Used by phase skills to drive session planning.## Engagement Signals — Lightweight motivational state (momentum, consecutive struggles, last celebration, notes). Updated by phase skills at teaching boundaries.Each of Concepts, Chains, and Factors uses a mastery tracking table with columns:
not-mastered | partial | masteredMastery status is updated by phase skills at every teaching boundary via the dln-sync agent. The orchestrator does not interpret mastery data — it passes the extracted Knowledge State block to the phase skill, which reads and acts on the tables.
Session Logs — Dated sections appended below Knowledge State by each phase skill. Contains session plan, progress notes, and plan adjustments. Old session logs are kept for audit but are NOT read back during mid-session syncs.
When creating a new domain profile, write the skeleton from @references/init-template.md to the page body.
Extract the domain name from the user's message. Examples:
Options PricingCompiler DesignIf no domain is specified, ask: "What domain would you like to learn? Give me a topic and I'll set up your learning path."
list — Query the DLN Profiles database and display all domains with their current phase, session count, last session date, and review status in a table. For each domain, compute review status:
Sort the table with overdue domains first (most overdue at top), then due today, then upcoming.
Example output:
| Domain | Phase | Sessions | Last Session | Coverage | Review Status |
|---|---|---|---|---|---|
| Options Pricing | Linear | 7 | 2026-03-05 | 14/16 (88%) | ⚠ 4 days overdue |
| Compiler Design | Dot | 3 | 2026-03-10 | 5/12 (42%) | Due today |
| Immunology | Network | 12 | 2026-03-09 | 20/20 (100%) | In 5 days |
If no syllabus exists for a domain, show "No syllabus" in the Coverage column.
reset [domain] — Find the matching row. Confirm with the user before executing. Then:
@references/init-template.md (clearing all Knowledge State and session logs)Use the Notion MCP to query the DLN Profiles database for a row matching the domain name.
If found: Read the current Phase, Session Count, and page body content. Then validate the page body structure (see Step 3 validation below).
If not found: Create a new row with:
Then write the page body initialization template (see Schema section above) to the new page.
Set Next Review = tomorrow's date and Review Interval = 1 for new domains.
Tell the user: "New domain detected. Starting you in the Dot phase — we'll build your foundational concepts first."
After loading an existing profile, check whether the page body contains these four core Knowledge State headers: ## Concepts, ## Chains, ## Factors, ## Compressed Model.
These four are sufficient because they are the structural headers that phase skills actively read mastery tables from. The remaining headers (## Interleave Pool, ## Calibration Log, ## Load Profile, ## Open Questions, ## Weakness Queue, ## Engagement Signals, ## Syllabus) are auxiliary — phase skills create them on first write if absent.
If all four core headers are present: The profile is valid. Proceed to Step 3a.
If any core header is missing: The profile exists but predates the current DLN template (or was created outside DLN). Auto-initialize:
@references/init-template.md to the page body, appending the original content under a ## Prior Notes header at the bottom.The Knowledge State block is wrapped in <!-- KS:start --> / <!-- KS:end --> HTML comment markers. These markers are managed by the dln-sync agent — the orchestrator does not add, remove, or check for them. If a profile is missing markers (pre-marker profiles), dln-sync will add them automatically on its first sync operation.
After loading the profile, compute the review status by comparing today's date against the Next Review column value.
If the domain is overdue or due today:
"It's been [N] days since your last session on [domain]. Your Next Review was [date] — you're [N days] overdue. Before we continue with new material, let's do a quick retrieval warm-up to see what's stuck."
Route to the phase-appropriate Review Protocol (below) BEFORE routing to the phase skill for new teaching.
After the review protocol completes, route to the phase skill as normal (Step 4).
If the domain is not due for review: Proceed directly to Step 4 (no review needed).
If the domain has never been reviewed (Next Review is empty): This is a legacy profile. Set Next Review = today and Review Interval = 1, then proceed to Step 4. The review system activates from the next session onward.
The review protocol runs inside the orchestrator, before the phase skill is invoked. It takes 3-8 minutes depending on phase.
Dot Phase Review:
review_results to the phase skill so it can prioritize re-teaching forgotten concepts.review_results to the phase skill for priority adjustment.Linear Phase Review:
Network Phase Review:
After each session completes (regardless of whether a review protocol ran), compute the next review interval using these rules:
Base intervals by phase:
Adjustment rules:
Set Next Review = today + Review Interval (in days).
Pass the computed Next Review and Review Interval values to the dln-sync agent in the replace-end dispatch as column_updates.
After loading the profile and running any review check, inspect the ## Syllabus section in the page body.
If the ## Syllabus section is empty or contains only the placeholder goal:
dln-syllabus subagent via the Agent tool, passing in the prompt:
"Here's the syllabus I've generated for [domain] based on your goal:
- Topic A
- Topic B
- Topic C
- ...
[N] topics total. Add, remove, or edit anything before we start. You can also edit this anytime in Notion."
## Syllabus section in Notion directly from the orchestrator (this is cheap — just text manipulation, no research needed).If the ## Syllabus section has topics:
Compute and display coverage stats before routing to the phase skill:
Syllabus Progress:
- Coverage: [N]/[M] topics covered ([percentage]%)
- Mastery: [X] mastered, [Y] partial, [Z] not-mastered
- Uncovered: [list of unchecked topics with no concepts yet]
A topic is covered when at least one concept in ## Concepts has a matching Syllabus Topic column value. A topic is checked off when all related concepts are mastered.
Pass the syllabus content to the phase skill alongside the page body (it's already in the page body, so no additional passing is needed).
Read the full page body of the domain's Notion page, then extract only the Knowledge State block to pass to the phase skill. This prevents old session logs from consuming context tokens.
Extraction rule: Find the <!-- KS:start --> and <!-- KS:end --> boundary markers. Extract everything between them (inclusive of markers). Discard everything after <!-- KS:end --> — that's session logs from prior sessions.
If the markers are missing (pre-marker profile), pass the full page body as-is and let dln-sync add markers on its first sync.
The extracted KS block includes the ## Syllabus section. Phase skills read it directly — no separate syllabus parameter is needed.
| Phase | Route To |
|---|---|
| Dot | dln-dot skill |
| Linear | dln-linear skill |
| Network | dln-network skill |
Pass the following context to the phase skill:
Use the Skill tool to invoke the appropriate phase skill (dln-dot, dln-linear, or dln-network).
After the phase skill completes, no additional write-back is needed — the phase skill handles all Notion persistence.
Phase transitions are handled by the phase skills themselves:
dln-dot skill updates Phase to Linear.dln-linear skill updates Phase to Network.dln-sync agent. If dln-sync returns with a failure status, the phase skill logs the intended update in-conversation, queues failed writes for the next dispatch, and falls back to in-conversation-only tracking if 3+ consecutive dispatches fail. See phase skill instructions for details.All DLN phase skills embed motivational design into their teaching. This is not a separate system — it is woven into every interaction. The principles:
Growth mindset framing: Attribute success to effort and strategy, not innate ability. "You worked through that" not "You're smart." Attribute struggle to the difficulty of the material or the need for a different approach, never to the learner's capacity.
Visible progress: At every checkpoint, tell the learner where they are relative to where they started. Use concrete counts: "You've mastered 8 of 12 concepts" or "Your model is 40% more compressed than last session." Progress must be tangible, not just "you're doing well."
Frustration detection and response: Monitor for frustration signals (see phase skill instructions). When detected, intervene immediately — do not push through. Simplify, provide a quick win, then rebuild momentum.
Desirable difficulty calibration: Learning should feel challenging but achievable. If the learner breezes through everything, increase difficulty. If they hit a wall, reduce scope and provide scaffolding. The target emotional state is "stretched but not overwhelmed."
Celebration at milestones: Phase transitions, mastery achievements, and session count thresholds are celebrated explicitly. Not with empty praise — with specific acknowledgment of what the learner accomplished and what it means.
The ## Engagement Signals section in the Knowledge State persists motivational context between sessions so the next session can calibrate its tone appropriately.
Momentum time-decay rule: If 7+ days have elapsed since the last session, reset Momentum to neutral regardless of its stored value. A fragile state from a bad session should not persist indefinitely — after a week, the learner has had enough distance that opening with fragile calibration feels mismatched. The phase skill reads Last Session from the profile and applies this rule before using the stored Momentum value.