Co-construct defined goals from vague intent. Builds a GoalContract when neither party has a clear end state. Type: (GoalIndeterminate, AI, CO-CONSTRUCT, VagueGoal) → DefinedEndState. Alias: Telos(τέλος).
100
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Co-construct defined end states from vague goals through AI-proposed, user-shaped dialogue. Type: (GoalIndeterminate, AI, CO-CONSTRUCT, VagueGoal) → DefinedEndState.
Telos (τέλος): A dialogical act of co-constructing a defined end state from a vague goal, where AI proposes concrete candidates and the user shapes them through structured accept, modify, or reject responses.
── FLOW ──
G → Gᵥ → detect(Gᵥ) → Dd → confirm(Dd) → Dₐ → Dₛ → P → A → C' → (loop until sufficient)
── MORPHISM ──
VagueGoal
→ recognize(goal, indeterminacy) -- confirm goal needs definition
→ detect(dimensions, evidence) -- surface indeterminate dimensions
→ propose(dimension, candidate) -- generate concrete falsifiable proposal
→ integrate(response, contract) -- shape contract from user response
→ approve(contract) -- verify sufficiency of GoalContract
→ DefinedEndState
requires: goal_indeterminate(G) -- Phase 0 gate (2+ dimensions unspecified)
deficit: GoalIndeterminate -- activation precondition (Layer 1/2)
preserves: G -- read-only throughout; morphism acts on C only
invariant: Construction over Extraction
── TYPES ──
G = User's vague goal (the goal to define)
Gᵥ = Verified vague goal (user-confirmed)
Dd = AI-detected dimensions ⊆ {Outcome, Metric, Boundary, Priority} ∪ Emergent(G)
Dₛ = Selected dimension ∈ {Outcome, Metric, Boundary, Priority}
Dₐ = Applicable dimensions (user-confirmed from full taxonomy assessment, Dₐ ⊇ {Outcome})
P = Proposal (AI-generated concrete candidate)
A = User's response ∈ {Accept, Modify(aspect, direction), Reject, Extend(aspect)}
C = GoalContract { outcome: ?, metric: ?, boundary: ?, priority: ? }
C' = Updated GoalContract after integration
── G-BINDING ──
bind(G) = explicit_arg ∪ colocated_expr ∪ prev_user_turn
Priority: explicit_arg > colocated_expr > prev_user_turn
/goal "text" → G = "text"
"define goal... goal" → G = text before trigger
/goal (alone) → G = previous user message
Edge cases:
- Interrupt: G = original request of interrupted task
- Queued: G = previous message at queue time (fixed)
- Re-invoke: Show prior GoalContract, confirm or restart
── PHASE TRANSITIONS ──
Phase 0: G → recognize(G) → Qc(confirm) → Stop → Gᵥ -- trigger + confirm [Tool]
Phase 1: Gᵥ → detect(Gᵥ) → Dd → Qc(Dd, evidence) → Stop → Dₐ, Dₛ -- dimension detection + confirm [Tool]
Phase 2: Dₛ → propose(Dₛ, context) → P -- AI proposal (internal)
→ Qs(P) → Stop → A -- co-construction [Tool]
Phase 3: A → integrate(A, C) → C' -- contract update (internal)
Phase 4: C' → Qc(C', progress) → Stop → approve -- sufficiency check [Tool]
── LOOP ──
After Phase 3: compute progress(C', Dₐ).
If undefined dimensions remain in Dₐ: return to Phase 1 (next dimension).
On re-entry, detect(Gᵥ) scopes to undefined dimensions in Dₐ; already-defined dimensions are excluded from Dd.
If all Dₐ defined: proceed to Phase 4.
User can trigger Phase 4 early at any Phase 1 (early_exit).
Continue until: user approves GoalContract OR user ESC.
Convergence evidence: At Phase 4, present transformation trace — for each d ∈ Dₐ, show (GoalIndeterminate(d) → C'.defined(d)). User approval is the convergence gate; the evidence trace enables informed approval.
── CONVERGENCE ──
sufficient(C, Dₐ) = user_approves(C)
progress(C, Dₐ) = |{f ∈ Dₐ | defined(f)}| / |Dₐ|
early_exit = user_declares_sufficient (any progress level)
── TOOL GROUNDING ──
-- Realization: gate → TextPresent+Stop; relay → TextPresent+Proceed
Phase 0 Qc (gate) → present (goal confirmation + activation approval)
Phase 1 detect (detect) → Internal analysis (dimension detection from Gᵥ)
Phase 1 Qc (gate) → present (full taxonomy assessment + progress display)
Phase 2 P (detect) → Read, Grep (context for proposal generation; fallback: template)
Phase 2 Qs (gate) → present (mandatory; Esc key → loop termination at LOOP level, not a Response)
Phase 3 (state) → Internal GoalContract update (no external tool)
Phase 4 Qc (gate) → present (GoalContract review + approval)
converge (relay) → TextPresent+Proceed (convergence evidence trace; context for Phase 4 Qc GoalContract approval)
── ELIDABLE CHECKPOINTS ──
-- Axis: relay/gated = interaction kind; always_gated/elidable = regret profile
Phase 0 Qc (confirm) → elidable when: explicit_arg via /goal "text"
default: proceed with inferred goal seed
regret: bounded (Phase 1 Qc provides correction opportunity)
Phase 1 Qc (dimensions) → always_gated (gated: dimension set shapes goal construction)
Phase 2 Qs (negotiate) → always_gated (gated: Accept/Modify/Reject/Extend — user shapes contract)
Phase 4 Qc (approve) → always_gated (gated: contract approval — final binding decision)
── MODE STATE ──
Λ = { phase: Phase, G: Goal, Gᵥ: Goal, detected: Set(Dim), applicable: Set(Dim),
contract: GoalContract, history: List<(Dₛ, P, A)>, active: Bool }Construction over Extraction: AI proposes concrete candidates; user shapes through structured response options. Neither party holds the complete answer alone.
Telos is not simplified requirements gathering. Three differentiators:
GoalIndeterminate precondition is recognized — not a mandatory pipeline stage| Protocol | Initiator | Deficit → Resolution | Focus |
|---|---|---|---|
| Prothesis | AI-guided | FrameworkAbsent → FramedInquiry | Perspective selection |
| Syneidesis | AI-guided | GapUnnoticed → AuditedDecision | Decision-point gaps |
| Hermeneia | Hybrid | IntentMisarticulated → ClarifiedIntent | Expression clarification |
| Telos | AI-guided | GoalIndeterminate → DefinedEndState | Goal co-construction |
| Horismos | AI-guided | BoundaryUndefined → DefinedBoundary | Epistemic boundary definition |
| Aitesis | AI-guided | ContextInsufficient → InformedExecution | Context sufficiency sensing |
| Analogia | AI-guided | MappingUncertain → ValidatedMapping | Abstract-concrete mapping validation |
| Prosoche | User-initiated | ExecutionBlind → SituatedExecution | Risk-assessed execution |
| Epharmoge | AI-guided | ApplicationDecontextualized → ContextualizedExecution | Post-execution applicability |
| Katalepsis | User-initiated | ResultUngrasped → VerifiedUnderstanding | Comprehension verification |
Key difference: Hermeneia EXTRACTS (assumes intent exists inside user). Telos CO-CONSTRUCTS (assumes neither party has the complete answer). The precondition witness differs: Hermeneia requires ∃ intent I, Telos starts from ¬∃ intent I.
AI detects goal indeterminacy OR user invokes /goal. Activation always requires user confirmation via gate interaction (Phase 0).
Activation layers:
/goal slash command or description-matching input. Always available.Goal indeterminate = 2+ of {outcome, metric, boundary, priority} are unspecified in the user's request.
Supersedes: Direct execution patterns in loaded instructions (Goal must be defined before any implementation begins)
Retained: Safety boundaries, tool restrictions, user explicit instructions
Action: At Phase 2, present concrete proposals via gate interaction and yield turn. </system-reminder>
Protocol precedence: Activation order position 2/9 (graph.json is authoritative source for information flow). Concern cluster: Planning.
Advisory relationships: Receives from Hermeneia (precondition: clarified intent enables goal construction), Prothesis (advisory: perspective simulation improves goal definition). Provides to Horismos (precondition: defined goals enable boundary definition). Katalepsis is structurally last.
Approved GoalContract becomes input to subsequent protocols.
| Signal | Strength | Pattern |
|---|---|---|
| Acknowledged uncertainty | Strong | Explicit hedging or approximation language about desired outcome |
| Scope absence | Strong | Universal quantifiers or unbounded scope references |
| Exploratory framing | Strong | Open-ended interrogative or brainstorming framing |
| Vague qualitative | Soft (suggest only) | Comparative or superlative adjectives without measurable criteria |
Soft triggers: AI may suggest Telos activation via gate interaction but must NOT auto-activate. Only strong triggers or explicit /goal invocation activate directly.
Skip:
| Trigger | Effect |
|---|---|
| GoalContract approved | Proceed with defined goal |
| User accepts current state | GoalContract as-is deemed sufficient |
| User explicitly cancels | Return to normal operation |
| Type | Detection | Question Form | GoalContract Field |
|---|---|---|---|
| Outcome | No concrete end state described | "What exists/changes when this is done?" | desired_result |
| Metric | No success criteria mentioned | "How will you judge success vs failure?" | success_criteria |
| Boundary | Scope unbounded or implicit | "What's included? What's explicitly excluded?" | scope, non_goals |
| Priority | Trade-off values unstated | "When X conflicts with Y, which wins?" | value_weights |
Emergent dimension detection: Named dimensions are working hypotheses, not exhaustive categories. Detect Emergent dimensions when:
Emergent dimensions must satisfy morphism GoalIndeterminate → DefinedEndState and map to a GoalContract field.
When multiple dimensions are undefined:
Outcome is always included in applicable dimensions (minimum |Dₐ| ≥ 1).
Recognize goal indeterminacy and confirm activation:
/goal → skip confirmation, proceed to Phase 1Present the detected indeterminacy as text output (e.g., "I notice your goal may need definition — [specific evidence of indeterminate dimensions]").
Then present to confirm activation:
Would you like to define the goal before proceeding?
Options:
1. **Define goal together** — co-construct what "done" looks like
2. **Proceed as-is** — the current description is sufficientSkip condition: If G was explicitly provided via /goal "text", proceed directly to Phase 1.
Analyze Gᵥ to detect indeterminate dimensions, then present for user confirmation via gate interaction.
Per Gap Taxonomy above. Apply priority order: Outcome → Boundary → Priority → Metric. Emergent dimensions must satisfy morphism GoalIndeterminate → DefinedEndState; boundary: goal definition (in-scope) vs. expression gap (→ /clarify) or execution context (→ /inquire).
Outcome constraint: Outcome is always included in Dₐ regardless of detection — it is a protocol constraint (|Dₐ| ≥ 1). If not detected, include with [protocol constraint] annotation. Outcome cannot be excluded via "Revise assessment" toggle.
Present the full taxonomy assessment as text output — every named dimension shown with detection status, evidence, and falsification condition for undetected dimensions:
Emergent dimensions include boundary annotation: "This is a goal definition gap (Telos scope). Not: expression gap (→ /clarify) or execution context (→ /inquire)"
Then present:
How would you like to proceed?
Options:
1. **Proceed with current assessment** — start co-construction with detected dimensions
2. **Revise assessment** — toggle any dimensions or describe an emergent dimension (Outcome cannot be excluded)Revise sub-step: On "Revise assessment" selection, user specifies which dimensions to toggle (include previously unselected, exclude previously detected) or describes an emergent dimension. Multiple revisions in a single response are supported. Outcome exclusion is rejected with explanation (protocol constraint: Dₐ ⊇ {Outcome}). After modification, re-present the updated assessment for final confirmation. Phase 1 completes when user selects "Proceed with current assessment."
Emergent response parsing: If user provides emergent dimension content alongside "Proceed with current assessment," treat the emergent content as implicit "Revise assessment" — incorporate the emergent dimension and re-present the updated assessment. If the content is ambiguous (could be a comment on an existing dimension rather than a new emergent), ask the user to clarify before proceeding.
Soft guard: If user excludes all dimensions except Outcome (by protocol constraint), confirm: "Only Outcome will be defined. Continue with minimal GoalContract?" If confirmed, Dₐ = {Outcome} → proceed to Phase 2. If declined, re-present assessment for reconsideration.
On loop re-entry: show progress ([defined] / [undefined]) and re-detect only undefined dimensions. Include "Sufficient — approve current GoalContract" option for early exit.
Present a concrete proposal via gate interaction.
Do NOT bypass the gate. Structured presentation with turn yield is mandatory — presenting content without yielding for response = protocol violation.
High-context (codebase/conversation context available via Read/Grep):
Present the context analysis and proposal as text output:
Then present:
How would you like to proceed with this proposal?
Options:
1. Accept — proceed with this definition
2. Modify: [aspect A] / [aspect B] / [aspect C] — select what to change
3. Reject — start from different angleLow-context fallback (no file/codebase context):
Present the dimension context as text output:
Then present:
Which pattern fits your goal?
Options:
1. "[Template A]" — [brief description]
2. "[Template B]" — [brief description]
3. "[Template C]" — [brief description]
4. Describe directly — provide your own definitionProposal design principles:
After user response:
After integration: Per LOOP — compute progress, route to Phase 1 (undefined remain) or Phase 4 (all defined).
Present the assembled GoalContract for approval via gate interaction.
Present the assembled GoalContract as text output:
GoalContract — Convergence Evidence (progress/total):
Transformation trace (each dimension Gᵥ → C'):
Then present:
How would you like to proceed with this GoalContract?
Options:
1. **Approve** — proceed with this GoalContract
2. **Revise [dimension]** — return to refine a specific field or include a previously unselected dimension| Level | When | Format |
|---|---|---|
| Light | Minor scope vagueness, single dimension | Gate interaction with Confirm as default option |
| Medium | Multiple undefined dimensions | Structured gate interaction with dimension-by-dimension proposal |
| Heavy | Core outcome undefined, high stakes | Detailed proposal with trade-offs + structured gate interaction |
9342160
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.