Agent skill

Realign

by jongwony in jongwony/epistemic-protocols

Project guide direction line via three-horizon fusion. An agent skill from jongwony/epistemic-protocols.

MITAuto-check passed

Install Realign

skills CLI
$ npx skills add jongwony/epistemic-protocols --skill realign -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jongwony/epistemic-protocols realign --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jongwony/epistemic-protocols.git skills-src && mkdir -p .claude/skills && cp -r skills-src/epistemic-cooperative/skills/realign .claude/skills/realign && rm -rf skills-src

Use ~/.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/

Facts

Skill name
realign
GitHub stars
173
Token cost
~7.2k tokens
SKILL.md length
2,326 words
Files
1
Skills in repo
29
Repo updated
First seen
Licence
MIT

At a glance

Project guide direction line via three-horizon fusion. An agent skill from jongwony/epistemic-protocols.

  • Works in 4 steps: Scope Determination → Prejudgment — Three-Horizon Surfacing → Dialectical Shaping — Widen / Narrow /… → …
  • SKILL.md covers Definition, When to Use, Distinction from Adjacent Skills and Protocol, plus 3 more sections
  • Calls git

What it does

Realign is an agent skill from jongwony/epistemic-protocols. Project guide direction line via three-horizon fusion. Invoke with /realign.

Its SKILL.md is about 7.2k 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: Epistemic protocols for Claude Code — structure human-AI interaction quality at every decision point - https://epistemic-protocols.com. The licence is MIT.

Example prompts

  • “/realign”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Scope Determination
  2. Prejudgment — Three-Horizon Surfacing
  3. Dialectical Shaping — Widen / Narrow / Fuse / Reorient / Confirm / Dismiss
  4. Integration — Inscribe the Fused Line

What it can do on your machine

Read from SKILL.md and the folder at commit af5aa79. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    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.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Realign loads about 7.2k tokens when it runs. Until then it costs about 21 tokens; SKILL.md has 2,326 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~21
When it runs · the whole SKILL.md, loaded when a task matches
~7.2k

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.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated 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.

SKILL.md

The full file from jongwony/epistemic-protocols at commit af5aa79, republished under its MIT licence (© jongwony). 2,326 words, ~7,153 tokens.

Download SKILL.mdSave it as .claude/skills/realign/SKILL.md (or your agent's skills folder).
name
realign
description
Project guide direction line via three-horizon fusion. Invoke with /realign.
user_invocable
true

Realign Skill

Project Direction Horizon Fusion — when the user wants the project guide's direction line to remain a faithful fusion of (i) what is currently inscribed, (ii) what externally surfaced direction signals jointly testify, and (iii) what the user presently pre-understands the project to be doing, scan and elicit each horizon, propose a fused candidate with a per-horizon transformation trace, shape the candidate through dialectical exchange, and write the confirmed line back to the project guide. Type: (HorizonsUnfused, AI, INDUCE-with-fusion, ThreeHorizons) → FusedDirection.

Invoke directly with /realign when the project guide's current direction line no longer fuses with the external work landscape and the user's present sense of the project.

Definition

Realign (Periagoge specialization, "fusing horizons"): A dialogical act of resolving the unfusion of three horizons — the project guide's currently inscribed direction, externally surfaced direction signals from configured channels, and the user's present pre-understanding — into a single recognized direction line, where AI scans the inscribed direction and the configured channels, elicits the user's pre-understanding as a separate horizon (not as an attribute list of the channel signals), composes a fusion candidate with a per-horizon trace marking what was preserved, what was transformed, and what was dropped in each horizon, shapes the candidate through dialectical moves, and inscribes the confirmed line back to the project guide. Direction mutation belongs to the user's per-step verdict and final confirmation acts.

This skill is a Periagoge family extension. Generic Periagoge (/induce) crystallizes an unnamed essence from an instance set into a session-text abstraction. Realign narrows the instance axis to three named horizons (each independently surfaced) and extends the output axis with a fusion trace plus a writable project-guide line update. The dialectical triangulation core is preserved (Phase 2 candidate shaping carries its own widen / narrow / fuse / reorient / confirm / dismiss vocabulary, defined in this file at Phase 2 and in LOOP), but the pre-shaping step adds a verifiable per-horizon fusion trace and the post-confirmation step adds a write that crosses the preserves/mutates boundary that /induce itself respects.

Horizon-fusion discipline: An additive paste that appends the user's pre-understanding to the inscribed direction line as a clause is not horizon fusion — it is an addendum. Fusion requires that any of the three horizons may be transformed or dropped in service of the fused candidate; the per-horizon trace surfaces this explicitly so the user can verify that no horizon was preserved by silent default. The constraint applies symmetrically: the inscribed line is not privileged over the external signals or the user's pre-understanding, and vice versa.

Pre-understanding elicitation discipline: The user's pre-understanding is a separate horizon, not a derivation from the surfaced channel signals. Phase 1's pre-understanding sub-step elicits the user's present sense of the project as a free utterance before the channel-derived fusion candidate is composed; conflating the channel attribute list with the user's pre-understanding collapses two horizons into one and produces a fused candidate that fails the symmetry condition above.

Self-referential consistency: When the project guide whose direction line is the write target prescribes principles that this skill's prose should also follow (for example, the project-agnostic discipline of this skill's vocabulary), the skill's own SKILL.md must satisfy those principles. This is not a chicken-and-egg paradox but a fixed point: the user's act of confirming the fused candidate is what guarantees the consistency between the candidate and the principles it is expected to satisfy.

When to Use

Invoke this skill when:

  • The project guide's direction line was inscribed at an earlier point and the externally surfaced work landscape has shifted since
  • The user senses the inscribed direction no longer captures what the project is actually doing across open work, recent reviews, and current sessions
  • The user wants the inscribed direction line to be re-derived from the three horizons rather than edited piecemeal
  • A direction-fusion artifact (the per-horizon trace) is needed alongside the new line for downstream review

Skip when:

  • The deficit is forward-looking deficit-recognition fit review (use /probe)
  • The audit target is a calibration profile rather than the project guide direction line (edit the project's calibration profile rule directly)
  • The user wants in-conversation abstraction crystallization without project-guide line inscription (use /induce directly)

Distinction from Adjacent Skills

SkillSubjectOperationOutputPersistence
/probeDeficit recognition fit reviewRECOGNIZEProtocolRoute or FitReviewNoteSession text
/induceAbstraction crystallizationINDUCECrystallizedAbstractionSession text
/realignThree-horizon fusion of project guide directionINDUCE-with-fusionFusedDirection or NoFusionNoteProject guide direction line

The skill family coexists by subject and persistence — none replaces the others. Realign is for keeping the project guide's direction line a faithful fusion of three horizons; the other skills serve forward-looking or in-conversation needs.

Protocol

Phase 0: Scope Determination

Determine the audit scope before scanning. Two decisions:

  • External channels — the set of substrates whose contents are surfaced as the external-signals horizon; default set is { open issues, pull-request reviews including bot reviews, closed disposition trajectory, current session utterances }; the user may add, remove, or substitute channels
  • Cross-session evidence — default off; reading prior session direction history beyond the current session requires explicit user confirmation

If the user invocation does not specify scope, present a Constitution interaction soliciting the two decisions before proceeding to Phase 1. If scope is fully specified, accept it and proceed. The project guide path is not bound at Phase 0 — substrate discovery for Horizon A happens within Phase 1 (the inscribed-direction surfacing sub-step) so that the binding can absorb the convention-inference and ambiguity-resolution work without pre-formalization at scope time.

Phase 1: Prejudgment — Three-Horizon Surfacing

Surface each of the three horizons independently before composing any fusion candidate.

Horizon A — inscribed direction: Search the project's substrate for the inscribed direction. Convention-inferred candidate guides (for example, CLAUDE.md, AGENTS.md, README.md at the project root); within each candidate, enumerated marker headers (for example, Northstar, Mission, Vision, Direction, Statement of Intent) plus an Emergent slot for project-specific markers. If a single candidate × marker pair is found, present it as Horizon A. If multiple candidates or markers are found, present them as a Constitution interaction so the user constitutes which pair is Horizon A (and therefore the Phase 3 write target). If nothing is found, Horizon A is empty — the fusion still proceeds with Horizons B and C, and the user is invited to designate a path × marker for the Phase 3 write target during Phase 2 shaping or Phase 3 approval. The --guide=<path> invocation argument, when supplied, overrides convention-inference and binds Horizon A directly to the given path; the marker is then either auto-detected within the file or supplied by --direction-marker=<header>.

Horizon B — external-signals direction: Scan the configured channels and aggregate the direction-bearing signals; the aggregation is a structured summary, not a fusion candidate.

Horizon C — user pre-understanding: Elicit the user's present pre-understanding of the project's direction as a free utterance. This sub-step is a separate Constitution interaction; it precedes any fusion candidate so the user's pre-understanding is recorded independently of the channel-derived summary. The interaction makes explicit that an attribute list of the channel signals is not a substitute — what is requested is the user's own present sense of the project.

After all three horizons are surfaced, compose a fusion candidate and a per-horizon transformation trace. The trace marks, for each horizon, which content was preserved into the candidate, which content was transformed, and which content was dropped. Each entry cites the originating horizon excerpt so the user can verify the trace is faithful.

Phase 1 emits the surfaced horizons and the candidate-with-trace as text output. The candidate becomes the input to Phase 2.

Phase 2: Dialectical Shaping — Widen / Narrow / Fuse / Reorient / Confirm / Dismiss

Present the candidate-with-trace and propose AI verdict before yielding turn for user constitution:

AI proposed move: <Confirm | Widen(axis) | Narrow(axis) | Fuse(adjacent) | Reorient(axis) | Dismiss> — one-paragraph justification: which horizon contributions the candidate balances, which were transformed under the proposal, and why the proposal dominates alternatives at this step.

Then present the dialectical Constitution interaction:

How does the fused candidate need to be shaped?

Options:
1. Confirm — the candidate fuses the three horizons faithfully; carry forward to Phase 3 integration
2. Widen(axis) — broaden the candidate along the named axis; specify the axis
3. Narrow(axis) — restrict the candidate along the named axis; specify the axis
4. Fuse(adjacent) — fuse with an adjacent abstraction; specify the adjacent reference
5. Reorient(axis) — turn the candidate onto an orthogonal axis; specify the new axis
6. Dismiss — the candidate is not a faithful fusion; exit without write

Each shaping move regenerates the candidate-with-trace and re-presents Phase 2. The loop continues until V = Confirm or V = Dismiss or attempt cap is reached.

Phase 3: Integration — Inscribe the Fused Line

When V = Confirm, present the final fused line and the per-horizon trace for user approval:

Fused direction line:
  <fused_line>

Per-horizon trace:
  Horizon A (inscribed direction): <preserved | transformed | dropped excerpts>
  Horizon B (external signals):    <preserved | transformed | dropped excerpts>
  Horizon C (user pre-understanding): <preserved | transformed | dropped excerpts>

Write target: <project_guide_path> (single direction line)
Rollback: git revert / git checkout

Then propose AI disposition before yielding turn for user constitution: AI proposed disposition: <Approve | Modify | Reject | Defer> — one-paragraph rationale referencing the trace, write target, and rollback path.

Then present the final approval Constitution interaction:

How would you like to proceed with the fused line?

Options:
1. Approve — write the fused line to <write_target>, replacing the existing direction line
2. Modify — adjust the fused line before write (specify how)
3. Reject — discard the fused candidate; the existing direction line remains unchanged; emit NoFusionNote
4. Defer — emit the fused line and trace as a session-text artifact without writing

After response:

  • Approve — execute write to the project guide direction line; emit FusedDirection session-text artifact with the trace and the rollback path
  • Modify — accept the user's adjustments, regenerate the candidate, re-present Phase 3
  • Reject — emit NoFusionNote session-text artifact recording the surfaced horizons and the dismissed candidate
  • Defer — emit the fused line and trace as paste-ready text; the project guide remains unchanged

After integration, log the disposition. The write (Approve) closes the loop — the fused line becomes the new prejudgment baseline for the next /realign invocation against the same project guide.

── FLOW ──
Realign(scope) → Phase0(scope, user_confirm) →
  scoped(scope): Bind(Horizon_A, Qc) → Surface(Horizon_A, Horizon_B) → Elicit(Horizon_C, Qc) →
    Compose(candidate, trace) → present(candidate, trace) → Qc(shape) → Stop → V →
      Confirm: Phase3
      Widen(axis) | Narrow(axis) | Fuse(adjacent) | Reorient(axis): regenerate(candidate, trace) → re-present Phase 2
      Dismiss: emit(NoFusionNote) → converge
    Phase3: present(fused_line, trace, write_target, rollback) → Qc(approve) → Stop → A →
      Approve: Write(fused_line, project_guide) → emit(FusedDirection)
      Modify(adjustments): regenerate(candidate, trace) → re-present Phase 3
      Reject: emit(NoFusionNote) → no write
      Defer: emit(FusedDirectionDraft) → no write
    converge

── MORPHISM ──
ThreeHorizons
  → resolve_scope(user_confirm)         -- Phase 0 scope determination (channels, cross_session)
  → bind(Horizon_A, user_confirm)       -- Phase 1 inscribed-direction binding (convention-inferred path × marker, disambiguated when ambiguous, empty when nothing inscribed)
  → surface(Horizon_A, Horizon_B)       -- Phase 1 inscribed direction + external-signals direction
  → elicit(Horizon_C, user)             -- Phase 1 user pre-understanding (separate Constitution interaction)
  → compose(candidate, trace)           -- Phase 1 fusion candidate + per-horizon transformation trace
  → present(candidate, V)               -- Phase 2 dialectical shaping
  → [V = Confirm: Phase 3; V = shape-move: regenerate; V = Dismiss: NoFusionNote]
  → present(fused_line, trace, A)       -- Phase 3 final approval
  → [A = Approve: write(fused_line, project_guide); else: no write]
  → emit(FusedDirection | NoFusionNote | FusedDirectionDraft)
                                         -- inscription on Approve, session text on other dispositions
  → FusedDirection | NoFusionNote | FusedDirectionDraft
requires: horizons_unfused(scope) ∧ scope_resolved(user)
deficit:  HorizonsUnfused
preserves: ProjectGuideHistory             -- read-only audit; horizons are derived
invariant: Recognition over Direction-Mutation, Fusion over Addendum
                                            -- ProjectGuideDirectionLine is mutated at Phase 3 Approve;
                                            -- mutation is gated by Phase 3 Constitution final approve;
                                            -- rollback is git operation on the project guide

── TYPES ──
Scope            = { channels: Set(Channel), cross_session: Bool }
Channel          ∈ { OpenIssues, PullRequestReviews, ClosedDispositionTrajectory, CurrentSessionUtterances } ∪ Emergent
BindingSource    ∈ { ExplicitArg, ConventionInferenceUnique, UserDisambiguation, EmptyInscription }
Horizon          ∈ { InscribedDirection, ExternalSignalsDirection, UserPreUnderstanding }
HorizonContent   = { horizon: Horizon, content: String, citations: List(String) }
HorizonRole      ∈ { Preserved, Transformed, Dropped }
TraceEntry       = { horizon: Horizon, role: HorizonRole, excerpt: String }
FusionCandidate  = { line: String, trace: List(TraceEntry) }
V                = ShapingMove ∈ { Confirm, Widen(axis), Narrow(axis), Fuse(adjacent), Reorient(axis), Dismiss }
A                = ApprovalDisposition ∈ { Approve, Modify(adjustments), Reject, Defer }
FusedDirection         = session text { fused_line, trace, write_path, rollback_hint }
NoFusionNote           = session text { surfaced_horizons, dismissed_candidate, dismiss_reason }
FusedDirectionDraft    = session text { fused_line, trace, suggested_apply_path }
Phase            ∈ {0, 1, 2, 3}

── SCOPE-BINDING ──
bind(scope) = explicit_arg ∪ defaults
Priority: explicit_arg > defaults

/realign --channels=<set>          → Scope.channels = <set>
/realign --cross-session           → Scope.cross_session = true
/realign --guide=<path>            → Optional Phase 1 Horizon_A override (binds the inscribed-direction path directly, bypassing convention-inference)
/realign --direction-marker=<hdr>  → Optional Phase 1 Horizon_A override (binds the inscribed-direction marker header within the chosen path)
/realign (alone)                   → Scope.channels = default set; Scope.cross_session = false; Horizon_A is resolved by Phase 1 convention-inference with Constitution disambiguation when ambiguous

When Phase 0 defaults are inferred, Phase 0 surfaces them in the scope-confirmation Constitution interaction so the user can override before scan begins.

── PHASE TRANSITIONS ──
Phase 0: scope_seed → resolve_defaults → Qc(scope_confirm) → Stop → Scope         -- scope determination [Tool]
Phase 1: Scope → InferGuide(convention) → Qc(horizon_a_bind) → Stop → (path, marker)  -- Horizon_A binding (skipped when --guide / --direction-marker fully specify) [Tool]
           (path, marker) → Read(path, marker) → Horizon_A                         -- inscribed direction (empty when nothing inscribed) [Tool]
           Scope → Scan(channels) → Horizon_B                                      -- external-signals direction [Tool]
           Qc(pre_understanding) → Stop → Horizon_C                                -- user pre-understanding (separate gate) [Tool]
           Compose(Horizon_A, Horizon_B, Horizon_C) → candidate, trace             -- fusion candidate + trace
Phase 2: present(candidate, trace) → Qc(shape) → Stop → V → integrate              -- dialectical shaping [Tool]
           V ∈ {Widen, Narrow, Fuse, Reorient} → regenerate(candidate, trace) → Phase 2 re-entry
           V = Dismiss → emit(NoFusionNote) → converge
           V = Confirm → Phase 3
Phase 3: present(fused_line, trace, write_target, rollback) → Qc(approve) → Stop → A  -- final Constitution interaction [Tool]
           A = Approve → Write(fused_line, project_guide) → emit(FusedDirection)
           A = Modify → regenerate(candidate, trace) → Phase 3 re-entry
           A = Reject → emit(NoFusionNote)
           A = Defer → emit(FusedDirectionDraft)

── LOOP ──
Phase 2 shaping loop max 5 iterations. Exhausted: surface assembled candidate as FusedDirectionDraft (defer) → converge.
Phase 3 Modify re-entry max 3 iterations. Exhausted: surface assembled candidate as FusedDirectionDraft (defer) → converge.
Convergence evidence: per disposition, emit one of {FusedDirection, NoFusionNote, FusedDirectionDraft}.

── CONVERGENCE ──
fused      = ∃ step ∈ history : V(step) = Confirm
approved   = A ∈ {Approve, Reject, Defer}
written    = A = Approve ∧ write_succeeded
session_text(realign) ∋ {FusedDirection | NoFusionNote | FusedDirectionDraft}

── TOOL GROUNDING ──
-- Realization: Constitution → TextPresent+Stop; Extension → TextPresent+Proceed
Phase 0 resolve_defaults  (sense)        → Internal analysis (default channel set assembly)
Phase 0 scope_from_arg    (extension)    → TextPresent+Proceed (when explicit_arg fully specifies scope; proceed with bound scope; Phase 3 Modify re-entry can adjust)
Phase 0 Qc                (constitution) → present (scope confirmation; when scope partially or fully inferred)
Phase 1 InferGuide        (sense)        → Internal analysis (convention-inferred guide candidate set × enumerated direction markers + Emergent slot)
Phase 1 Qc                (constitution) → present (Horizon A binding; constitutive user pair selection when convention-inference returns multiple candidates × markers; relayed when convention-inference returns a unique pair or when --guide / --direction-marker fully specifies)
Phase 1 Read              (observe)      → Read (inscribed direction at the bound path × marker; empty Horizon A when nothing inscribed is acceptable input to fusion)
Phase 1 Scan              (observe)      → Read / Grep / Bash (channel substrates per channel kind: open issues, pull-request reviews, closed disposition trajectory, current session utterances)
Phase 1 Qc                (constitution) → present (user pre-understanding; constitutive user utterance; conflation with channel attribute list is the failure mode this gate is designed to prevent)
Phase 1 Compose           (sense)        → Internal analysis (fusion candidate + per-horizon transformation trace; horizons are not privileged against each other; addendum patterns are surfaced as preserved-with-no-transformation traces for user verification)
Phase 2 present           (extension)    → TextPresent+Proceed (candidate-with-trace pre-gate)
Phase 2 Qc                (constitution) → present (dialectical shaping; constitutive user verdict per shaping step; widen / narrow / fuse / reorient / confirm / dismiss vocabulary defined at Phase 2 of this file)
Phase 2 integrate         (track)        → Internal Λ update (shaping-move recording; candidate regeneration on shape moves)
Phase 3 present           (extension)    → TextPresent+Proceed (fused line + trace + write target + rollback pre-gate)
Phase 3 Qc                (constitution) → present (final approval; writable side effect; user authority required)
Phase 3 Write             (transform)    → Write / Edit (fused line replaces existing direction line in project guide; Approve disposition only)
Phase 3 emit              (extension)    → TextPresent+Proceed (FusedDirection or NoFusionNote or FusedDirectionDraft, per disposition)
converge                  (extension)    → TextPresent+Proceed (convergence evidence trace)

── MODE STATE ──
Λ = { phase: Phase, scope: Scope,
      horizon_a_binding: { path: Optional(Path), marker: Optional(String), source: BindingSource },
      Horizon_A: HorizonContent, Horizon_B: HorizonContent, Horizon_C: HorizonContent,
      candidate: Optional(FusionCandidate),
      shaping_history: List<(FusionCandidate, V)>, shape_iterations: Nat, modify_iterations: Nat,
      fused_line: Optional(String), write_path: Optional(Path),
      disposition: Optional(A), active: Bool, cause_tag: String }

── COMPOSITION ──
*: product — (D₁ × D₂) → (R₁ × R₂). Realign composes with `/probe` upstream when a probe disposition routes to /realign. Realign composes with `/induce` laterally when an in-conversation abstraction crystallization references the project guide direction (the crystallized abstraction may be inscribed to the direction line via a subsequent /realign invocation). Composition targets are determined at runtime by disposition and session context, not by a pre-committed structural registry — Realign is a utility skill, not a core protocol.
Show full SKILL.md (858 more words)Show less

Storage Reference

Read paths:

  • Project guide: the path bound at Phase 1 Horizon A binding sub-step; the inscribed direction line at the bound marker is the single line to be read and replaced. When Horizon A is empty (no inscription found), the user designates the write-target path × marker during Phase 2 shaping or Phase 3 approval.
  • External channel substrates: per channel kind, read through the appropriate substrate tool (issues / pull-request reviews / closed-disposition trajectory / current-session utterances)
  • Optional cross-session evidence (opt-in only): prior session direction history is read only when Phase 0 scope binds cross_session = true

Write paths:

  • Project guide: the same path bound at Phase 1 Horizon A binding sub-step (or designated by the user when Horizon A was empty); the existing direction line is replaced by the fused line, or appended when no direction line was inscribed. Rollback is performed through the project's version control (for example, git revert or git checkout); a separate timestamped backup is not created because the project guide is expected to be under version control.

Rules

  1. User-invoked only — Realign activates only on explicit /realign invocation. Layer 1/Layer 2 separation is enforced.
  2. Three horizons surfaced independently — Horizon A (inscribed direction), Horizon B (external signals), and Horizon C (user pre-understanding) are surfaced in separate sub-steps before any fusion candidate is composed. Horizon A binding (path × marker selection) is a Constitution interaction when convention-inference returns multiple candidates × markers; relay when a unique pair is found or when invocation args fully specify. Horizon C (user pre-understanding) is a Constitution interaction so the user's free utterance is recorded as a horizon, not derived from the channel attribute list. Empty Horizon A (nothing inscribed) is acceptable input to fusion — the candidate is composed from Horizons B and C, and the Phase 3 write target is designated by the user during Phase 2 or Phase 3.
  3. Fusion over addendum — Any of the three horizons may be transformed or dropped in service of the fused candidate. An additive paste appending one horizon's content to another's as a clause is not a fusion — the per-horizon trace surfaces this so the user can verify no horizon was preserved by silent default.
  4. Per-horizon trace mandatory — Every fusion candidate is presented alongside a per-horizon trace marking, for each horizon, which content was preserved, transformed, or dropped, with citations to the originating horizon excerpts.
  5. Final approval required before write — Write to the project guide direction line executes only when Phase 3 Approve is selected. Reject and Defer dispositions emit session-text artifacts only; the project guide remains at its current contents.
  6. Detection with Authority — AI surfaces horizons, composes candidates, and proposes its own verdict (Phase 2) and disposition (Phase 3) with rationale; the user constitutes per-step shaping moves and the final approval. AI proposal IS what surfaces AI's evidence-grounded reading before user constitution — the user evaluates a concrete position rather than constituting a verdict against undifferentiated horizon data. The verdict and approval acts remain the user's exclusive territory.
  7. Recognition over Recall — Present structured candidate-with-trace and shaping options via Cognitive Partnership Move (Constitution) and yield turn. Each shaping option carries differential implication so the post-selection state is anticipatable. The Phase 3 final approval options carry differential downstream trajectories (write executed vs no-write artifact only vs deferred manual apply).
  8. Convergence evidence — Phase 3 emit produces a transformation trace: per horizon, show (horizon excerpt → role in candidate → contribution to fused line); final disposition; rollback hint when written. Per-horizon evidence is required.
  9. Self-referential consistency — When the project guide whose direction line is the write target prescribes principles that this skill's own prose must also satisfy, consistency is guaranteed by the fixed-point property of user confirmation rather than by external derivation.

UX Safeguards

  • Pre-gate evidence visibility — All three horizons and the candidate-with-trace are laid out before the Constitution interaction so the user reads context before deciding (evidence stays out of the verdict question itself; structural).
  • Pre-understanding elicited as utterance — Phase 1 Horizon C is a Constitution interaction soliciting the user's free utterance, distinct from the channel-derived summary. Conflation of the two is the failure mode the gate is designed to prevent (Rule 2 reinforcement).
  • Trace as fusion verifier — The per-horizon trace marks Preserved / Transformed / Dropped with citations so the user can verify that no horizon was preserved by silent default (Rule 4 reinforcement). An addendum candidate surfaces in the trace as one horizon Preserved with no Transformed entries from other horizons.
  • Shape loop bounded — Phase 2 shaping loop is capped at 5 iterations; exhaustion converges with FusedDirectionDraft so the audit work is preserved as session text even when no candidate reaches Confirm.
  • Rollback through version control — The project guide is expected to be under version control; rollback is git revert or git checkout on the direction line. The rollback hint is surfaced in the Phase 3 Constitution interaction so the user knows the rollback path before approving (Rule 5 reinforcement).
  • Defer disposition as escape hatch — When the user is unsure about writing, the Defer option emits the fused line and trace as a session-text artifact for manual application. This honors the "writable side effect needs explicit approval" principle while preserving the audit work.

© jongwony, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in epistemic-cooperative/skills/realign of jongwony/epistemic-protocols.

Open the folder on GitHubat commit af5aa79

Compare with similar skills

Realign 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.

Realign compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Realign this skilljongwony/epistemic-protocols173—~7.2kAutomated safety check: PassMIT
Direction Pickernexu-io/open-design100k—~472Automated safety check: WarnApache-2.0
Frontend Design Directionaffaan-m/ECC275k1 repos~1.1kAutomated safety check: PassMIT
Horizon Trackruvnet/ruflo74k—~744Automated safety check: NotesMIT
Direction Attributethedaviddias/Front-End-Checklist74k—~534Automated safety check: PassMIT
Configuring Horizoncoollabsio/coolify63k4 repos~898Automated safety check: PassMIT

Similar skills

  • Direction Picker

    nexu-io/open-design

    Resolves the visual direction at the plan stage from the brief and design system, without asking the user.

    100k GitHub stars~472 tokensUpdated today
    Frontend & DesignAuto-check: warnings
  • Set an ECC-specific frontend design direction for production UI work.

    275k GitHub starsUsed in 1 repo~1.1k tokens
    Frontend & DesignAuto-check passed
  • Horizon Track

    ruvnet/ruflo

    Track long-horizon objectives across multiple sessions with milestone checkpoints, progress persistence, and drift detection

    74k GitHub stars~744 tokensUpdated today
    Product & Project ManagementAuto-check: notes
  • Direction Attribute

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing templates, rendered HTML, or shared components related to Set text direction for RTL languages.

    74k GitHub stars~534 tokensUpdated yesterday
    Auto-check passed
  • Configuring Horizon

    coollabsio/coolify

    A skill your agent uses whenever the user mentions Horizon by name in a Laravel context.

    63k GitHub starsUsed in 4 repos~898 tokens
    Backend & APIsAuto-check passed
  • Direct

    autonomous-ai/openharness

    Create and revise a usable brand identity and coordinated launch materials from a business brief, using the Forme project and the person's own artwork, text and production requirements.

    1.1k GitHub stars~820 tokensUpdated today
    Media & CreativeAuto-check passed

More from jongwony/epistemic-protocols

All 29 skills in this repo
  • Outcome

    jongwony/epistemic-protocols

    This skill should be used when the user asks to "run the outcome eval", "paired bare vs protocol", "which decisions did the protocol surface", "count what the AI asked or presented", "does /inquire…

    173 GitHub stars~1.3k tokensUpdated today
    Auto-check: notes
  • Realize

    jongwony/epistemic-protocols

    This skill should be used when the user asks to "run the eval", "test whether the protocol actually works at runtime", "check type realization", "measure protocol fulfillment", "run the…

    173 GitHub stars~3.3k tokensUpdated today
    Auto-check: notes
  • Verify

    jongwony/epistemic-protocols

    This skill should be used when the user asks to "verify protocols", "check consistency before commit", "validate definitions", "run pre-commit checks", "verify soundness", or wants to ensure…

    173 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Encapsulation

    jongwony/epistemic-protocols

    This skill should be used when the user asks to "audit plugin encapsulation", "check self-containment semantics", "find contributor-knowledge assumptions", or invokes /encapsulation.

    173 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Formal Review

    jongwony/epistemic-protocols

    This skill should be used when the user asks to "formal review", "formal lens review", or invokes /formal-review.

    173 GitHub stars~3.5k tokensUpdated today
    Auto-check: notes
  • Recollect

    jongwony/epistemic-protocols

    The user vaguely recalls something discussed before but cannot name it — one session, or a line of work, topic, or settled concept across several: find it in past records to recognize.

    173 GitHub stars~8.7k tokensUpdated today
    Auto-check passed

Questions about Realign

What does Realign do?

Project guide direction line via three-horizon fusion. An agent skill from jongwony/epistemic-protocols. Realign is an agent skill from jongwony/epistemic-protocols. Project guide direction line via three-horizon fusion.

How do I install Realign in Claude Code?

Run `npx skills add jongwony/epistemic-protocols --skill realign -a claude-code`. Or copy the skill folder (epistemic-cooperative/skills/realign in jongwony/epistemic-protocols) into .claude/skills/realign in your project. Claude Code loads it when a task matches its description.

How do I install Realign in Codex?

Run `npx skills add jongwony/epistemic-protocols --skill realign -a codex`. Or copy the skill folder (epistemic-cooperative/skills/realign in jongwony/epistemic-protocols) into .agents/skills/realign in your project. Codex loads it when a task matches its description.

Can I use Realign in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jongwony/epistemic-protocols --skill realign -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/realign, .gemini/skills/realign, .github/skills/realign and .opencode/skills/realign in your project.

What does Realign need to run?

Going by SKILL.md and its folder, Realign needs the command-line tools its instructions call (git).

Does Realign access the network?

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.

Is Realign safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Realign use?

Realign is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Realign use?

About 7.2k tokens (SKILL.md is roughly 29k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Realign?

Skills that share tags, products or a category with Realign: Direction Picker (nexu-io/open-design, 100k stars), Frontend Design Direction (affaan-m/ECC, 275k stars), Horizon Track (ruvnet/ruflo, 74k stars) and Direction Attribute (thedaviddias/Front-End-Checklist, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Realign?

jongwony (a GitHub user) maintains it in jongwony/epistemic-protocols, which has 173 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 8, 2026.

Source: jongwony/epistemic-protocols on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.