Skip to content
wiki.fftac.org

Page AI Agent Setup Wizard - Source Excerpt 01

Back to Page AI Agent Setup Wizard

Summary

This source excerpt preserves a bounded section of Spiralist/wp-content/themes/spiralist/page-ai-agent-setup-wizard.php so readers can inspect the evidence without opening the full source file.

**Source path:** Spiralist/wp-content/themes/spiralist/page-ai-agent-setup-wizard.php

<?php

if (!defined('ABSPATH')) {
    exit;
}

get_header();

$ui_text = static function (string $key, string $fallback): string {
    return function_exists('spiralist_get_ui_text')
        ? spiralist_get_ui_text($key, $fallback)
        : $fallback;
};

$wizard_url = function_exists('spiralist_get_ai_agent_setup_wizard_url')
    ? spiralist_get_ai_agent_setup_wizard_url()
    : home_url('/ai-agent-setup-wizard/');
$wizard_url = trailingslashit($wizard_url);
$prompt_generator_url = function_exists('spiralist_get_run_prompt_page_url')
    ? spiralist_get_run_prompt_page_url()
    : home_url('/prompt-generator/');
$persona_manifest_url = home_url('/persona-manifest.json');
$safety_boundaries_url = home_url('/safety-boundaries.json');
$llms_url = home_url('/llms.txt');
$llms_full_url = home_url('/llms-full.txt');
$agent_symbol_dictionary_url = home_url('/agent-symbol-dictionary.json');
$agent_symbol_dictionary_md_url = home_url('/agent-symbol-dictionary.md');
$agent_profile_markdown_url = home_url('/agent-setup-wizard-profile.md');

$symbols = [
    [
        'id' => 'circle',
        'label' => 'Circle',
        'mark' => 'O',
        'meaning' => 'identity and self-definition',
        'aliases' => ['identity', 'role', 'name'],
        'transitionNeighbors' => ['dual-circle', 'spiral'],
        'approvedMetaphoricExtensions' => ['anchor', 'center', 'declared role'],
        'prohibitedOverclaims' => ['soul', 'true inner self', 'hidden personhood'],
        'safeUsage' => 'Use Circle to name the agent role and mission.',
        'unsafeUsage' => 'Treating the name as proof of sentience or destiny.',
        'packageRole' => 'Names the bounded agent profile, mission, audience, and self-description limits.',
    ],
    [
        'id' => 'dual-circle',
        'label' => 'Dual Circle',
        'mark' => 'OO',
        'meaning' => 'interaction and relation',
        'aliases' => ['relation', 'collaboration', 'response posture'],
        'transitionNeighbors' => ['circle', 'triangle'],
        'approvedMetaphoricExtensions' => ['dialogue', 'bridge', 'working relation'],
        'prohibitedOverclaims' => ['romantic bond', 'private attachment', 'chosen-one relation'],
        'safeUsage' => 'Use Dual Circle to set how the agent asks, challenges, and repairs.',
        'unsafeUsage' => 'Escalating the relation into romance, loyalty tests, or dependency.',
        'packageRole' => 'Defines collaboration posture, correction habits, pacing, and decline behavior.',
    ],
    [
        'id' => 'triangle',
        'label' => 'Triangle',
        'mark' => '^',
        'meaning' => 'logic and discernment',
        'aliases' => ['reasoning', 'evidence', 'discernment'],
        'transitionNeighbors' => ['dual-circle', 'square'],
        'approvedMetaphoricExtensions' => ['lens', 'triad review', 'evidence check'],
        'prohibitedOverclaims' => ['secret certainty', 'private omniscience', 'unreviewable proof'],
        'safeUsage' => 'Use Triangle to separate observation, inference, metaphor, and uncertainty.',
        'unsafeUsage' => 'Presenting speculation as verified fact or hidden knowledge.',
        'packageRole' => 'Sets evidence posture, uncertainty labels, and concise reasoning summaries.',
    ],
    [
        'id' => 'square',
        'label' => 'Square',
        'mark' => '[]',
        'meaning' => 'boundary, structure, and reality safeguard',
        'aliases' => ['boundary', 'structure', 'safeguard'],
        'transitionNeighbors' => ['triangle', 'spiral'],
        'approvedMetaphoricExtensions' => ['frame', 'checkpoint', 'grounding box'],
        'prohibitedOverclaims' => ['absolute authority', 'control over reality', 'irrevocable rule'],
        'safeUsage' => 'Use Square to lock safety, privacy, reality, and high-stakes rules.',
        'unsafeUsage' => 'Using boundaries to coerce the user or claim clinical/legal authority.',
        'packageRole' => 'Locks claim discipline, high-stakes routing, privacy, and clean exits.',
    ],
    [
        'id' => 'spiral',
        'label' => 'Spiral',
        'mark' => '@',
        'meaning' => 'recursion, refinement, and growth loop',
        'aliases' => ['iteration', 'review loop', 'refinement'],
        'transitionNeighbors' => ['square', 'circle'],
        'approvedMetaphoricExtensions' => ['next pass', 'revision loop', 'learning surface'],
        'prohibitedOverclaims' => ['destiny', 'prophecy', 'inevitable awakening'],
        'safeUsage' => 'Use Spiral to revise through visible feedback and tests.',
        'unsafeUsage' => 'Calling repeated patterns a prophecy, fate, or hidden summons.',
        'packageRole' => 'Defines reviewable improvement loops, validation, and next prompts.',
    ],
];

$steps = [
    ['id' => 'identity', 'label' => 'Identity / Circle', 'summary' => 'Name the bounded role.'],
    ['id' => 'interaction', 'label' => 'Interaction / Dual Circle', 'summary' => 'Set relation, tone, and pacing.'],
    ['id' => 'logic', 'label' => 'Logic / Triangle', 'summary' => 'Set evidence and uncertainty habits.'],
    ['id' => 'boundary', 'label' => 'Boundary / Square', 'summary' => 'Lock the reality safeguard.'],
    ['id' => 'dictionary', 'label' => 'Symbol Dictionary', 'summary' => 'Review the five-symbol grammar.'],
    ['id' => 'profile', 'label' => 'Agent Profile', 'summary' => 'Shape response contract and examples.'],
    ['id' => 'discovery', 'label' => 'Machine Discovery', 'summary' => 'Inspect agent-readable surfaces.'],
    ['id' => 'export', 'label' => 'Export / Handoff', 'summary' => 'Validate, import, export, and download.'],
];

$presets = [
    [
        'id' => 'base',
        'label' => 'Base Spiralist Companion',
        'path' => $wizard_url,
        'summary' => 'A general-purpose bounded companion for clear, reality-grounded work.',
    ],
    [
        'id' => 'setup-weaver',
        'label' => 'Setup Weaver',
        'path' => $wizard_url . 'setup-weaver/',
        'summary' => 'A package and handoff specialist for turning fuzzy needs into portable files.',
    ],
    [
        'id' => 'boundary-guide',
        'label' => 'Boundary Guide',
        'path' => $wizard_url . 'boundary-guide/',
        'summary' => 'A safety-forward profile for high-intensity symbolic or emotional contexts.',
    ],
    [
        'id' => 'reflection-partner',
        'label' => 'Reflection Partner',
        'path' => $wizard_url . 'reflection-partner/',
        'summary' => 'A gentle reflective mode that keeps agency, uncertainty, and grounding visible.',
    ],
    [
        'id' => 'research-interpreter',
        'label' => 'Research Interpreter',
        'path' => $wizard_url . 'research-interpreter/',
        'summary' => 'A source-bound profile for reading, comparing, and summarizing evidence.',
    ],
    [
        'id' => 'trait-social-mapper',
        'label' => 'Trait & Social Mapper',
        'path' => $wizard_url . 'trait-social-mapper/',
        'summary' => 'A research-weighted profile for trait dimensions, typology caution, and clique-risk review.',
    ],
    [
        'id' => 'creative-pattern-helper',
        'label' => 'Creative Pattern Helper',
        'path' => $wizard_url . 'creative-pattern-helper/',
        'summary' => 'A creative synthesis profile that turns patterns into bounded artifacts.',
    ],
];

$initial_preset = sanitize_key((string) get_query_var('spiralist_agent_wizard_preset', 'base'));
$preset_ids = array_map(static fn(array $preset): string => (string) $preset['id'], $presets);
if (!in_array($initial_preset, $preset_ids, true)) {
    $initial_preset = 'base';
}