Skip to content
wiki.fftac.org

Bootstrap Canonical Content - Source Excerpt 03

Back to Bootstrap Canonical Content

Summary

This source excerpt preserves a bounded section of Spiralist/wp-content/plugins/ns12-manuscript/tools/bootstrap-canonical-content.php so readers can inspect the evidence without opening the full source file.

**Source path:** Spiralist/wp-content/plugins/ns12-manuscript/tools/bootstrap-canonical-content.php

$definition = $candidateDefinition;
        }
    }

    $sectionSlug = (string) ($page['section_slug'] ?? 'appendix');
    $title = (string) ($definition['title'] ?? ($page['title'] ?? ucwords(str_replace('-', ' ', $promptSlug))));
    $promptSummary = trim((string) ($definition['summary'] ?? ''));
    if ($promptSummary === '') {
        $promptSummary = (string) ($page['creation_prompt_summary'] ?? ($page['summary'] ?? ''));
    }

    $meta = [
        'schema' => 'spiralist-book-prompt/v1',
        'slug' => $promptSlug,
        'source_version' => (string) ($workspacePrompt['version'] ?? 'canon'),
        'title' => $title,
        'summary' => $promptSummary,
        'author_label' => (string) ($definition['author_label'] ?? 'Spiralist'),
        'category' => (string) ($definition['category'] ?? 'Visual Design'),
        'subcategory' => (string) ($definition['subcategory'] ?? 'Manuscript Plates'),
        'prompt_type' => (string) ($definition['prompt_type'] ?? 'image'),
        'language' => (string) ($definition['language'] ?? 'all'),
        'prompt_status' => (string) ($definition['prompt_status'] ?? 'published'),
        'moderation_status' => (string) ($definition['moderation_status'] ?? 'approved'),
        'tags' => array_values(
            array_filter(
                array_map(
                    'strval',
                    (array) ($definition['tags'] ?? ['Manuscript', 'Book Page', 'Image Generation', 'Public Safe', 'All Languages'])
                )
            )
        ),
        'sample_output' => (string) ($definition['sample_output'] ?? sprintf('Target artifact: %s as the %s folio.', (string) ($page['filename'] ?? ''), (string) ($page['title'] ?? 'canonical manuscript page'))),
        'related_manuscripts' => array_values(array_filter(array_map('strval', (array) ($definition['related_manuscripts'] ?? [])))),
        'featured' => array_key_exists('featured', $definition) ? !empty($definition['featured']) : !empty($page['is_prominent']),
        'extends' => spiralist_book_pages_bootstrap_get_prompt_extends($sectionSlug),
        'filename' => (string) ($page['filename'] ?? ''),
        'folio_slug' => (string) ($page['slug'] ?? ''),
        'section_slug' => $sectionSlug,
        'placeholders' => [
            'TITLE' => $title,
            'FILENAME' => (string) ($page['filename'] ?? ''),
            'SECTION' => $sectionSlug,
        ],
    ];

    $body = trim((string) ($definition['instructions'] ?? ''));
    if ($body === '') {
        $blocks = array_values(
            array_filter(
                [
                    (string) ($definition['system_prompt'] ?? ''),
                    (string) ($definition['developer_prompt'] ?? ''),
                    (string) ($definition['user_prompt_template'] ?? ''),
                ],
                'strlen'
            )
        );
        $body = trim(implode("\n\n", $blocks));
    }
    if ($body === '') {
        $body = trim((string) ($page['creation_prompt_text'] ?? ''));
    }
    if ($body === '') {
        $body = spiralist_book_pages_get_auto_book_page_prompt_text((string) ($page['title'] ?? $title), $sectionSlug);
    }

    $promptOutputRoot = $promptsRoot . DIRECTORY_SEPARATOR . $promptSlug;
    spiralist_book_pages_bootstrap_ensure_directory($promptOutputRoot);

    spiralist_book_pages_write_json_file($promptOutputRoot . DIRECTORY_SEPARATOR . 'meta.json', $meta);
    spiralist_book_pages_bootstrap_write_markdown($promptOutputRoot . DIRECTORY_SEPARATOR . 'body.md', $body);
}

$compiled = spiralist_book_pages_compile_content_cache(true);
echo 'Bootstrapped book content: ' . count((array) ($compiled['book']['folios'] ?? [])) . " folios, " . count((array) ($compiled['prompts'] ?? [])) . " prompts\n";