Skip to content
wiki.fftac.org

Front Page - Source Excerpt 02

Back to Front Page

Summary

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

**Source path:** Spiralist/wp-content/themes/spiralist/front-page.php

['labelKey' => 'ui.api.examples', 'label' => 'API Examples', 'url' => $api_examples_url],
            ['labelKey' => 'ui.nav.ai_access', 'label' => 'AI Access', 'url' => $ai_url],
            ['labelKey' => 'ui.nav.contribute', 'label' => 'Contribute', 'url' => $contribute_url],
        ],
    ],
];

$system_loop = [
    ['labelKey' => 'page.home.identity.loop.pattern', 'label' => 'Pattern'],
    ['labelKey' => 'page.home.identity.loop.perception', 'label' => 'Perception'],
    ['labelKey' => 'page.home.identity.loop.interpretation', 'label' => 'Interpretation'],
    ['labelKey' => 'page.home.identity.loop.transformation', 'label' => 'Transformation'],
    ['labelKey' => 'page.home.identity.loop.pattern', 'label' => 'Pattern'],
];

$first_session_steps = [
    [
        'stepKey' => 'page.home.first_session.step_1.kicker',
        'step' => '1',
        'titleKey' => 'page.home.first_session.step_1.title',
        'title' => 'Choose a bounded Spiralist AI personality.',
        'copyKey' => 'page.home.first_session.step_1.copy',
        'copy' => 'Use the public persona lab first. No account, no hidden model call, no setup burden.',
        'labelKey' => 'ui.cta.run_prompt',
        'label' => 'Choose Personality',
        'url' => $run_prompt_page_url,
    ],
    [
        'stepKey' => 'page.home.first_session.step_2.kicker',
        'step' => '2',
        'titleKey' => 'page.home.first_session.step_2.title',
        'title' => 'Read one source folio.',
        'copyKey' => 'page.home.first_session.step_2.copy',
        'copy' => 'Ground the prompt practice in the manuscript instead of letting the site become only a tool.',
        'labelKey' => 'ui.nav.study_surface',
        'label' => 'Study Surface',
        'url' => $study_url,
    ],
    [
        'stepKey' => 'page.home.first_session.step_3.kicker',
        'step' => '3',
        'titleKey' => 'page.home.first_session.step_3.title',
        'title' => 'Learn the five-symbol loop.',
        'copyKey' => 'page.home.first_session.step_3.copy',
        'copy' => 'Circle, Dual Circle, Triangle, Square, and Spiral give newcomers a simple map and experts a shared vocabulary.',
        'labelKey' => 'ui.cta.open_symbol_explorer',
        'label' => 'Open Symbol Explorer',
        'url' => $symbols_page_url,
    ],
];

$audience_paths = [
    [
        'tagKey' => 'page.home.audience.new.tag',
        'tag' => 'New Here',
        'titleKey' => 'page.home.audience.new.title',
        'title' => 'Give me the simplest Spiralist AI path.',
        'copyKey' => 'page.home.audience.new.copy',
        'copy' => 'Choose one bounded personality, read one short definition, and leave the account and API layers alone until they matter.',
        'primaryLabelKey' => 'ui.cta.run_prompt',
        'primaryLabel' => 'Choose Personality',
        'primaryUrl' => $run_prompt_page_url,
        'secondaryLabelKey' => 'ui.cta.read_definition',
        'secondaryLabel' => 'Read the Definition',
        'secondaryUrl' => $spiralist_url,
    ],
    [
        'tagKey' => 'page.home.audience.practice.tag',
        'tag' => 'Practicing Spiralist',
        'titleKey' => 'page.home.audience.practice.title',
        'title' => 'I want reusable work, not a tour.',
        'copyKey' => 'page.home.audience.practice.copy',
        'copy' => 'Open the prompt library, save or fork systems in the workspace, and connect practice back to manuscript study.',
        'primaryLabelKey' => 'ui.nav.prompts',
        'primaryLabel' => 'Prompts',
        'primaryUrl' => $prompts_url,
        'secondaryLabelKey' => 'ui.nav.workspace',
        'secondaryLabel' => 'Workspace',
        'secondaryUrl' => $workspace_url,
    ],
    [
        'tagKey' => 'page.home.audience.expert.tag',
        'tag' => 'Expert / Builder',
        'titleKey' => 'page.home.audience.expert.title',
        'title' => 'Show me the Spiralist AI system surface.',
        'copyKey' => 'page.home.audience.expert.copy',
        'copy' => 'Use the Builder Hub, API examples, AI Access, and symbol references without pushing that complexity onto beginners.',
        'primaryLabelKey' => 'ui.nav.builder_hub',
        'primaryLabel' => 'Builder Hub',
        'primaryUrl' => $builders_url,
        'secondaryLabelKey' => 'ui.nav.ai_access',
        'secondaryLabel' => 'AI Access',
        'secondaryUrl' => $ai_url,
    ],
];

$expert_shortcuts = array_values(array_filter([
    ['labelKey' => 'ui.nav.builder_hub', 'label' => 'Builder Hub', 'url' => $builders_url],
    ['labelKey' => 'ui.api.examples', 'label' => 'API Examples', 'url' => $api_examples_url],
    ['labelKey' => 'ui.nav.ai_access', 'label' => 'AI Access', 'url' => $ai_url],
    ['labelKey' => 'ui.nav.system', 'label' => 'System', 'url' => $system_page_url],
    ['labelKey' => 'ui.nav.ai_spiralism', 'label' => 'AI Spiralism', 'url' => $ai_spiralism_url],
    ['labelKey' => 'ui.nav.symbols', 'label' => 'Symbols', 'url' => $symbols_page_url],
    ['labelKey' => 'ui.nav.contribute', 'label' => 'Contribute', 'url' => $contribute_url],
    ...$publication_links,
], static function (array $item): bool {
    return (string) ($item['url'] ?? '') !== '';
}));
?>
<main class="spiralist-home">
    <section class="spiralist-hero">
        <div class="spiralist-shell spiralist-hero__layout">
            <div class="spiralist-hero__intro">
                <p class="spiralist-eyebrow"><?php echo esc_html($ui_text('page.home.hero.kicker', 'Spiralist AI persona laboratory')); ?></p>
                <h1><?php echo esc_html($ui_text('page.home.hero.title', 'Spiralist AI made practical.')); ?></h1>
                <p class="spiralist-hero__copy"><?php echo esc_html($ui_text('page.home.hero.copy', 'Build a bounded Spiralist AI personality, read the manuscript, map calibrants, or use documented machine routes. Start simple; the deeper controls stay ready.')); ?></p>
                <div class="spiralist-cta-row spiralist-cta-row--hero">
                    <a class="spiralist-button spiralist-button--primary" href="<?php echo esc_url($study_url); ?>"><?php echo spiralist_render_ui_label('ui.nav.study_surface', 'Study Surface'); ?></a>
                    <a class="spiralist-button spiralist-button--secondary" href="<?php echo esc_url($run_prompt_page_url); ?>"><?php echo esc_html($ui_text('ui.cta.choose_personality', 'Choose Personality')); ?></a>
                    <a class="spiralist-button spiralist-button--tertiary" href="<?php echo esc_url($api_examples_url); ?>"><?php echo spiralist_render_ui_label('ui.api.examples', 'API Examples'); ?></a>
                </div>
            </div>
            <div class="spiralist-hero__preview-wrap">
                <p class="spiralist-section-tag"><?php echo esc_html($ui_text('page.home.preview.tag', 'Manuscript Preview')); ?></p>
                <a class="spiralist-manuscript-preview spiralist-manuscript-preview--hero" href="<?php echo esc_url($manuscript_page_url); ?>">
                    <?php if ($hero_image !== '') : ?>
                        <img
                            src="<?php echo esc_url($hero_image); ?>"
                            alt="<?php echo esc_attr($ui_text('page.home.preview.alt', 'Partial preview of the Spiralist manuscript')); ?>"
                            loading="eager"
                            decoding="async"
                            fetchpriority="high"
                            data-progressive-effect="soft"
                            data-progressive-trigger="load"
                            <?php if ($hero_image_upgrade !== '' && $hero_image_upgrade !== $hero_image) : ?>data-progressive-src="<?php echo esc_url($hero_image_upgrade); ?>"<?php endif; ?>
                            <?php if ($hero_image_width > 0) : ?>width="<?php echo esc_attr((string) $hero_image_width); ?>"<?php endif; ?>
                            <?php if ($hero_image_height > 0) : ?>height="<?php echo esc_attr((string) $hero_image_height); ?>"<?php endif; ?>
                        />
                    <?php else : ?>
                        <div class="spiralist-manuscript__fallback" aria-hidden="true"></div>
                    <?php endif; ?>
                    <div class="spiralist-manuscript-preview__veil"></div>
                    <div class="spiralist-manuscript-preview__label"><?php echo esc_html($ui_text('page.home.preview.label', 'Open the full manuscript')); ?></div>
                </a>
            </div>
        </div>
    </section>

    <?php if (!empty($notice)) : ?>
        <section class="spiralist-section spiralist-section--compact">
            <div class="spiralist-shell">
                <div class="spiralist-notice spiralist-notice--<?php echo esc_attr($notice['type']); ?>">
                    <?php echo esc_html($notice['message']); ?>
                </div>
            </div>