Skip to content
wiki.fftac.org

Prompt - Source Excerpt 04

Back to Prompt

Summary

This source excerpt preserves a bounded section of Spiralist/wp-content/plugins/spiralist-workspace/templates/prompt.php so readers can inspect the evidence without opening the full source file.

**Source path:** Spiralist/wp-content/plugins/spiralist-workspace/templates/prompt.php

<dd><?php echo esc_html((string) ($prompt['version_number'] ?? 1)); ?></dd>
                    </div>
                    <div>
                        <dt>Level</dt>
                        <dd><?php echo esc_html((string) ($prompt['maturity_level_label'] ?? 'Structured Prompt')); ?></dd>
                    </div>
                    <div>
                        <dt>License</dt>
                        <dd><?php echo esc_html((string) ($prompt['license_label'] ?? 'Spiralist Contributor License')); ?></dd>
                    </div>
                    <div>
                        <dt>Language</dt>
                        <dd><?php echo esc_html((string) ($prompt['language'] ?? 'en')); ?></dd>
                    </div>
                    <div>
                        <dt>Updated</dt>
                        <dd><?php echo esc_html($detailed_updated_display); ?></dd>
                    </div>
                </dl>

                <?php if (!empty($prompt['tags'])) : ?>
                    <div class="spiralist-chip-row">
                        <?php foreach ((array) $prompt['tags'] as $tag) : ?>
                            <span class="spiralist-chip"><?php echo esc_html((string) $tag); ?></span>
                        <?php endforeach; ?>
                    </div>
                <?php endif; ?>

                <?php if (!empty($parent_prompt)) : ?>
                    <p class="spiralist-muted">Forked from <a href="<?php echo esc_url($route_url('prompt/' . rawurlencode((string) ($parent_prompt['slug'] ?? '')))); ?>"><?php echo esc_html((string) ($parent_prompt['title'] ?? 'parent prompt')); ?></a>.</p>
                <?php endif; ?>

                <div
                    class="spiralist-workspace-stack spiralist-workspace-exchange-panel spiralist-editable-prompt-surface"
                    data-prompt-exchange="<?php echo esc_attr($prompt_exchange_id); ?>"
                    data-editable-prompt-surface
                    data-editable-prompt-title="<?php echo esc_attr(trim((string) ($prompt['title'] ?? 'Prompt') . ' - AI Flavor Exchange')); ?>"
                    data-editable-prompt-source="prompt-exchange"
                    data-editable-prompt-kind="ai-flavor-exchange"
                >
                    <p class="spiralist-section-tag">AI Flavor Exchange</p>
                    <h3 class="spiralist-card-title">Portable prompt personality</h3>
                    <p class="spiralist-muted">A compact artifact for reusing this prompt's role, constraints, runtime settings, and governance context outside the dossier. Open a preview to edit it directly; matching Copy, Download, and Save use the visible preview text.</p>
                    <dl class="spiralist-meta-list spiralist-meta-list--compact spiralist-workspace-exchange-summary">
                        <div>
                            <dt>Role</dt>
                            <dd><?php echo esc_html((string) ($prompt['title'] ?? 'Prompt')); ?></dd>
                        </div>
                        <div>
                            <dt>Flavor</dt>
                            <dd><?php echo esc_html(!empty($prompt_flavor_tags) ? implode(', ', array_slice($prompt_flavor_tags, 0, 4)) : $prompt_kind_display); ?></dd>
                        </div>
                        <div>
                            <dt>Formats</dt>
                            <dd>JSON / Markdown</dd>
                        </div>
                        <div>
                            <dt>Boundary</dt>
                            <dd>No hidden memory claims</dd>
                        </div>
                    </dl>
                    <div class="spiralist-cta-row spiralist-cta-row--start">
                        <button class="spiralist-button spiralist-button--secondary" type="button" data-prompt-exchange-view="json">View JSON</button>
                        <button class="spiralist-button spiralist-button--secondary" type="button" data-prompt-exchange-view="markdown">View Markdown</button>
                        <button class="spiralist-button spiralist-button--secondary" type="button" data-prompt-exchange-download="json">Download JSON</button>
                        <button class="spiralist-button spiralist-button--ghost" type="button" data-prompt-exchange-download="markdown">Download Markdown</button>
                        <button class="spiralist-button spiralist-button--ghost" type="button" data-prompt-exchange-copy="json">Copy JSON</button>
                        <button class="spiralist-button spiralist-button--ghost" type="button" data-prompt-exchange-copy="markdown">Copy Markdown</button>
                        <?php if ($can_save_editable_prompt) : ?>
                            <button class="spiralist-button spiralist-button--ghost" type="button" data-editable-prompt-save>Save Preview To My Library</button>
                        <?php else : ?>
                            <a class="spiralist-button spiralist-button--ghost" href="<?php echo esc_url($login_url); ?>" data-editable-prompt-auth-save>Log In To Save Preview</a>
                            <a class="spiralist-button spiralist-button--ghost" href="<?php echo esc_url($signup_url); ?>" data-editable-prompt-auth-save>Sign Up To Save Preview</a>
                        <?php endif; ?>
                        <?php if ($prompt_public_api_url !== '') : ?>
                            <a class="spiralist-button spiralist-button--ghost" href="<?php echo esc_url($prompt_public_api_url); ?>">Open Public JSON</a>
                        <?php endif; ?>
                    </div>
                    <span class="spiralist-muted" data-prompt-exchange-result aria-live="polite"></span>
                    <pre class="spiralist-code-block spiralist-code-block--prompt spiralist-workspace-exchange-view spiralist-editable-prompt-block" tabindex="0" role="textbox" aria-multiline="true" contenteditable="plaintext-only" spellcheck="false" data-prompt-exchange-output data-editable-prompt-block hidden></pre>
                    <small class="spiralist-muted spiralist-editable-prompt-status" data-editable-prompt-status aria-live="polite"></small>
                    <script type="application/json" id="<?php echo esc_attr($prompt_exchange_id); ?>"><?php echo wp_json_encode($prompt_exchange_payload, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT); ?></script>
                </div>

                <div class="spiralist-cta-row spiralist-cta-row--start">
                    <?php if (is_user_logged_in()) : ?>
                        <button
                            class="spiralist-button spiralist-button--primary"
                            type="button"
                            data-favorite-button
                            data-prompt-id="<?php echo esc_attr((string) ($prompt['id'] ?? 0)); ?>"
                            data-favorite-state="<?php echo esc_attr($is_favorite ? '1' : '0'); ?>"
                        ><?php echo esc_html($is_favorite ? 'Unfavorite' : 'Favorite'); ?></button>
                        <?php if (!empty($prompt['is_forkable'])) : ?>
                            <a class="spiralist-button spiralist-button--secondary" href="<?php echo esc_url($workspace_url . '?fork_prompt=' . (int) ($prompt['id'] ?? 0)); ?>">Fork</a>
                        <?php endif; ?>
                        <?php if ($plugin->permissions()->can_edit_prompt($prompt, get_current_user_id())) : ?>
                            <button
                                class="spiralist-button spiralist-button--tertiary"
                                type="button"
                                data-improve-prompt
                                data-prompt-id="<?php echo esc_attr((string) ($prompt['id'] ?? 0)); ?>"
                                data-target="[data-improve-output]"
                            >Improve this prompt</button>
                        <?php endif; ?>
                    <?php else : ?>
                        <a class="spiralist-button spiralist-button--primary" href="<?php echo esc_url($login_url); ?>">Log In to Save</a>
                    <?php endif; ?>
                </div>
                <?php $improve_output_id = 'spiralist-prompt-improve-output-' . (int) ($prompt['id'] ?? 0); ?>
                <button class="spiralist-button spiralist-button--ghost" type="button" data-improve-output-copy data-copy-trigger data-copy-target="#<?php echo esc_attr($improve_output_id); ?>" data-copy-success="Copied" hidden>Copy Suggestion</button>
                <pre class="spiralist-code-block spiralist-code-block--prompt" id="<?php echo esc_attr($improve_output_id); ?>" data-improve-output hidden></pre>

                <div class="spiralist-workspace-stack" id="peer-moderation">