/* Why — in-depth framework explanations. * Accordion-based reference page covering Pertel modes, Schedii modes, * Neurodivii lenses, and AkrosInfra characteristics. */ const { useState } = React; function HostNavWhy() { return (
Pertel
[Pertel $Install §Theory
); } /* Accordion item — single component used everywhere */ function Acc({ id, cmd, name, tag, status, accent, lead, body, dl, openId, setOpenId }) { const open = openId === id; return (
{lead &&

{lead}

} {body && body.map((p, i) =>

{p}

)} {dl && (
{dl.map((row, i) => (
{row[0]}
{row[1]}
))}
)}
); } function WhyApp() { const [openId, setOpenId] = useState(null); const a = (id) => ({ id, openId, setOpenId }); return (
{/* Hero */}
in-depth · drop-downs

Why this.

The deep version of every mode, lens, and principle. Pertel, Schedii, the Neurodivii lenses, and the AkrosInfra characteristics that won't transplant.

{/* Pertel — all modes */}

Pertel — all modes.

flags on @sch @sch -d · @sch -f · @sch p
The lite Pertel. Memory, append-only markdown logs, doc handoff between sessions.} body={[ <>Pertel Dash keeps your conversation outside the model. Sessions live as markdown files in a local .pertel/ folder. Every turn is appended, every fact you tag is pinned, and every handoff bundles facts + transcript for the next model., <>Use it when you don't need the workbench — just the conversation memory and the survival across model swaps., ]} dl={[ ['command', @sch -d], ['storage', <>local .pertel/*.md], ['tools', <>begin · remember · recall · handoff · tail · forget], ['side effects', 'none (markdown only)'], ['ask it', '"what did we say last time?" · "don\u2019t blow my context."'], ]} /> The filter. Sifts your work through the Schedii Bible + AkrosInfra frameworks.} body={[ <>Drop an idea, draft, plan, or code into @sch -f. The filter scores against the bible, returns reasons, and re-separates what survives. Not a guarantee — worth the pass., <>Sift runs in three lenses, plus full and custom. See the next section., ]} dl={[ ['command', @sch -f], ['lenses', 'mm · ndv · ndvr · full · custom'], ['frameworks', 'Reminiscence Meter · Verify Before Done · Safe-Write · Stable-ID Worklist · Discipline-as-MCP'], ['returns', 'kept · killed · re-separated · reasons attached'], ['ask it', '"sift this against the bible." · "what would the framework kill?"'], ]} /> The full stack. Workbench + Dash + Sift + discovery, in one namespace.} body={[ <>When you want everything Pertel does in one mode. The serious mode. Has access to the Schedii workbench (brands, queue, drafts, publish), the Dash memory layer, the Sift filter, and discovery., <>Use when the work crosses surfaces — memory ↔ workbench ↔ filter in one session., ]} dl={[ ['command', @sch p], ['includes', '@sch (workbench) + -d + -f + discovery'], ['storage', <>local .pertel/ + schedii backend], ['side effects', 'mutates — proposes first, confirm to apply'], ['ask it', '"ship this." · "where are we?" · "remember + filter + post."'], ]} />
{/* Schedii — all modes */}

Schedii — all modes.

the base workbench @sch (no flag)
The Schedii workbench, exposed as MCP tools.} body={[ <>Without a flag, @sch is the workbench namespace. Every surface is callable: brands, posts, queue, integrations, drafts, scheduling, inbox, analytics., <>All mutations follow the propose-confirm pattern: the model proposes a payload, the engine returns a confirmToken, the user (or AI agent) confirms to apply., ]} dl={[ ['command', @sch], ['surfaces', 'brands · posts · queue · calendar · connections · drafts · inbox · analytics'], ['tools', <>brand.list · queue.list · draft.create · publish · health · context_pack], ['contract', 'workspace-scoped · dry-run by default · evidence returned'], ['ask it', '"list_queue" · "draft a post for bluesky" · "publish at 18:42"'], ]} /> Every Schedii surface gets a stable URI.} body={[ <>The Chance Rate audit converts every Schedii page into an addressable resource: schedii://surface/dashboard, schedii://surface/calendar, schedii://surface/connections, and so on., <>Resources are read on demand by the model. They never mutate. They are the AI client's reference layer., ]} dl={[ ['scheme', schedii://surface/<name>], ['cacheable', 'yes'], ['mutates', 'no'], ['examples', <>schedii://surface/posts · schedii://surface/calendar], ]} /> Rituals exposed as callable prompts.} body={[ <>The session ritual (begin, wrap, audit) becomes a named prompt the AI client lists in its prompt picker. Type /begin, the framework wording is delivered consistently every time., <>Replaces "paste this prompt into your AI" with "pick this prompt by name.", ]} dl={[ ['examples', <>schedii.begin_session · schedii.wrap_session · schedii.audit_drift], ['triggered by', 'user (not the model)'], ['format', 'structured prompt text + parameters'], ]} />
{/* Neurodivii lenses */}

Neurodivii — the lenses.

how Pertel F thinks @sch -f · mm · ndv · ndvr
A graph-based filter. Concepts become nodes; relations become edges.} body={[ <>Salience is measured at each node. Edges carry weight. The filter walks the strongest paths and reports the weakest joints — the places the argument relies on something thin., <>Best when the work has structure (a plan, a model, a system) and you want to see where it bends., ]} dl={[ ['shape', 'directed weighted graph'], ['measures', 'node salience · edge strength · path coverage'], ['reports', 'strongest path · weakest joint · orphan nodes'], ['ask it', '"where does this plan rely on something thin?"'], ]} /> Re-weights signal so unusual angles survive the standard cut.} body={[ <>The canonical pass kills outliers by default — that's the whole point of a filter. Neurodivii re-weights so the "what if?" gets a second look before the filter decides., <>Best when conventional review is too quick to discard the unusual. The lens preserves angle without preserving noise., ]} dl={[ ['re-weights', 'novelty · cross-domain · unusual structure'], ['preserves', 'the angle, not the noise'], ['runs after', 'standard pass (then re-evaluates the rejects)'], ['ask it', '"what would a standard review have killed that\u2019s worth a second look?"'], ]} /> Same lens, plus the why.} body={[ <>Every keep, kill, and re-separation comes back with the reasoning attached. Auditable, traceable, defensible. The filter that explains itself., <>Use when the decision matters and someone needs to read the reasoning — pre-publish audits, post-mortem, anything you'd be asked to justify., ]} dl={[ ['returns', 'verdict + reasoning trace per item'], ['traceable', 'yes — full chain'], ['auditable', 'yes — every step persisted'], ['ask it', '"sift this and tell me why for each call."'], ]} />
{/* Uncopiable characteristics */}

What won't transplant.

AkrosInfra characteristics the part that isn't features
The methodology is the product. The MCP is the interface.} body={[ <>Most "AI tools" are a wrapper around a prompt. AkrosInfra inverts that: the discipline is a set of named operators (Verify Before Done, Safe-Write, Stable-ID, Reminiscence Meter), and the MCP exposes each one as a Resource, Prompt, or Tool., <>Copy the prompts, miss the discipline. The thing that's hard isn't the wording — it's the rule set every action is checked against., ]} /> Some rules never bend. Some preferences scale with context.} body={[ <>Rocks: backend is the boundary, workspaceId on every request, no direct DB access, no silent provider fallback, every mutation has a dry-run, every mutation returns evidence, errors surface loudly. These do not negotiate., <>Sand: local-first, installable later, HTTP transport later, hosted dashboard only if useful. These bend with the season., <>The thing that's uncopiable is knowing which is which without re-deciding every time., ]} /> Memory is a conveyor, not a database row.} body={[ <>HOT (identity) · WARM (semantic) · COOL (consolidation staging) · COLD (episodic firehose). Promotion is a graph operation: visible, notification-firing, reversible., <>Reframing is non-destructive (REFRAME, BRIDGE, MERGE — never delete). Temporal validity (validityStart / validityEnd) means old facts get a successor edge, not erasure. Ebbinghaus decay with a retrieval boost., <>Five-axis salience: recency · frequency · emotion · novelty · alignment. The emotion axis is load-bearing., ]} /> Every "done" claim ships with evidence.} body={[ <>Diff, log, test, response, screenshot, or inspection note. Confident language without evidence is a discipline violation., <>The AI proposes. The user disposes. The engine guards. None of those steps is optional — and none of them are vibes., ]} /> Files are not memes. Mutations route through a guarded engine.} body={[ <>Every tool that writes goes through Safe-Write. No tool calls fs.writeFile directly. Operation categories are explicit: create-new (free), modify (diff + confirm), overwrite (force + backup), delete (refused — use archive), destructive (refused — human-typed approval)., <>Assume every write fires twice. Guards, idempotency, expected-state checks. Reversibility is the moat., ]} /> Compatibility is allowed. Copying is not. The meter knows the difference.} body={[ <>Every surface scores against its closest rival across six weighted axes: visual (30%) · layout (20%) · interaction (25%) · naming (10%) · motion (10%) · iconography (5%)., <>Healthy band: 21–45%. Below: derivative. Above: gratuitously novel. The point isn't perfection — it's that originality is measurable and the rule is the same across surfaces., ]} /> Tasks have permanent IDs. The taxonomy is fixed.} body={[ <>T (task) · H (hypothesis) · S (surface) · U (user-story) · R (rock). IDs never get reassigned. The worklist is append-only., <>Reference T17 across docs, sessions, models — it always means the same thing. The cost of looking up a name is zero; the cost of getting one wrong is everything., ]} /> The state lives in files, read first every session.} body={[ <>Seven canonical state files: CLAUDE.md · NOW.md · ROADMAP.md · CHANGELOG.md · PLAN.md · MEMORY.md · .claude/commands/begin.md. Not six, not eight. Adding an eighth because it "feels useful" creates drift., <>Three canonical angles per identity: Primary · Conversational · Environmental. New angles are sand; these three are rock., ]} /> Every tool returns the same shape.} body={[ <>{`{ status, changed_files, proposed_files, evidence, warnings, next_actions }`}. The model sees the schema, the user sees the result, the next tool reads the output. Free-text-only output is rejected at the contract level., <>This is the part that lets multiple models pick the work up mid-session — because every prior step is parsed, not narrated., ]} />
{/* Footer */}
mcp.schedii.app why · in-depth framework · AkrosInfra unified snapshot · 2026-05-22 akros · infra
); } const root = ReactDOM.createRoot(document.getElementById('root')); root.render();