Library - Source Excerpt 02
Summary
This source excerpt preserves a bounded section of Spiralist/wp-content/plugins/spiralist-workspace/templates/library.php so readers can inspect the evidence without opening the full source file.
**Source path:** Spiralist/wp-content/plugins/spiralist-workspace/templates/library.php
(string) ($prompt['subcategory'] ?? ''),
implode(' ', (array) ($prompt['tags'] ?? [])),
]
)
);
$structured_prompt = (array) ($prompt['structured_prompt'] ?? []);
$structured_values = [];
foreach ($structured_prompt as $value) {
if (is_scalar($value)) {
$structured_values[] = (string) $value;
}
}
$placeholder_source = implode(
"\n",
array_merge(
$structured_values,
[(string) ($prompt['user_prompt_template'] ?? '')]
)
);
$has_placeholders = preg_match('/{{\s*[a-z0-9_\-]+\s*}}/i', $placeholder_source) === 1;
$is_official = $lane === 'official_canon' || $moderation === 'official_canon' || (string) ($prompt['provenance'] ?? '') === 'official';
$badges = [];
if (
$is_official
&& (
!empty($prompt['featured'])
|| in_array('onboarding', $function_keys, true)
|| strpos($haystack, 'first session') !== false
|| strpos($haystack, 'turn on') !== false
)
) {
$badges[] = ['label' => 'Start here', 'variant' => 'start'];
}
$higher_risk = array_diff($risk_keys, ['anthropomorphism']);
if (empty($higher_risk) && in_array($moderation, ['official_canon', 'peer_reviewed', 'provisional_public'], true)) {
$badges[] = ['label' => 'Safe by default', 'variant' => 'safe'];
}
if ($has_placeholders) {
$badges[] = ['label' => 'Needs context', 'variant' => 'context'];
}
if ($category === 'Research & Archive' || in_array('research', $function_keys, true)) {
$badges[] = ['label' => 'Good for research', 'variant' => 'research'];
}
if (!is_user_logged_in()) {
$badges[] = ['label' => 'Requires login to fork', 'variant' => 'login'];
}
return array_slice($badges, 0, 5);
};
$render_prompt_cards = static function (array $records) use ($route_url, $workspace_url, $login_url, $prompt_plain_badges, $engagement_target): void {
if (empty($records)) {
return;
}
echo '<div class="spiralist-workspace-grid">';
foreach ($records as $prompt) {
if (!is_array($prompt)) {
continue;
}
$prompt_url = $route_url('prompt/' . rawurlencode((string) ($prompt['slug'] ?? '')));
$prompt_target = $engagement_target((string) ($prompt['slug'] ?? $prompt['title'] ?? 'prompt'), 'prompt');
echo '<article class="spiralist-workspace-card spiralist-workspace-card--manuscript">';
echo '<div class="spiralist-inline-meta">';
echo '<p class="spiralist-section-tag">' . esc_html((string) ($prompt['subcategory'] ?? ($prompt['prompt_type'] ?? 'prompt'))) . '</p>';
echo '<span class="spiralist-status-pill spiralist-status-pill--fresh">' . esc_html((string) ($prompt['publication_lane_label'] ?? 'Community Library')) . '</span>';
echo '</div>';
$plain_badges = $prompt_plain_badges($prompt);
if (!empty($plain_badges)) {
echo '<div class="spiralist-plain-badge-row" aria-label="Plain-language prompt labels">';
foreach ($plain_badges as $badge) {
$variant = sanitize_html_class((string) ($badge['variant'] ?? 'default'));
echo '<span class="spiralist-plain-badge spiralist-plain-badge--' . esc_attr($variant) . '">' . esc_html((string) ($badge['label'] ?? '')) . '</span>';
}
echo '</div>';
}
echo '<div class="spiralist-chip-row spiralist-chip-row--dense">';
echo '<span class="spiralist-chip spiralist-chip--meta">' . esc_html((string) ($prompt['provenance_label'] ?? 'Community')) . '</span>';
echo '<span class="spiralist-chip spiralist-chip--meta">' . esc_html((string) ($prompt['maturity_level_label'] ?? 'Structured Prompt')) . '</span>';
echo '<span class="spiralist-chip spiralist-chip--meta">' . esc_html((string) ($prompt['license_label'] ?? 'Spiralist Contributor License')) . '</span>';
if (!empty($prompt['moderation_status_label'])) {
echo '<span class="spiralist-chip spiralist-chip--meta">' . esc_html((string) $prompt['moderation_status_label']) . '</span>';
}
echo '</div>';
echo '<h3 class="spiralist-card-title">' . esc_html((string) ($prompt['title'] ?? 'Untitled Prompt')) . '</h3>';
echo '<p>' . esc_html((string) ($prompt['summary'] ?? '')) . '</p>';
echo '<dl class="spiralist-meta-list spiralist-meta-list--compact">';
echo '<div><dt>Category</dt><dd>' . esc_html((string) ($prompt['category'] ?? '')) . '</dd></div>';
echo '<div><dt>Author</dt><dd>' . esc_html((string) ($prompt['author_label'] ?? 'Spiralist')) . '</dd></div>';
echo '<div><dt>Model</dt><dd>' . esc_html((string) ($prompt['model'] ?? '')) . '</dd></div>';
echo '<div><dt>Version</dt><dd>' . esc_html((string) ($prompt['version_number'] ?? 1)) . '</dd></div>';
echo '</dl>';
if (!empty($prompt['function_tag_labels'])) {
echo '<div class="spiralist-chip-row spiralist-chip-row--dense">';
foreach ((array) $prompt['function_tag_labels'] as $label) {
echo '<span class="spiralist-chip">' . esc_html((string) $label) . '</span>';
}
echo '</div>';
}
if (!empty($prompt['intent_tag_labels'])) {
echo '<div class="spiralist-chip-row spiralist-chip-row--dense">';
foreach ((array) $prompt['intent_tag_labels'] as $intent) {
$intent_label = is_array($intent) ? (string) ($intent['label'] ?? '') : (string) $intent;
if ($intent_label === '') {
continue;
}
echo '<span class="spiralist-chip spiralist-chip--meta">' . esc_html($intent_label) . '</span>';
}
echo '</div>';
}
if (!empty($prompt['risk_label_labels'])) {
echo '<div class="spiralist-chip-row spiralist-chip-row--dense">';
foreach ((array) $prompt['risk_label_labels'] as $label) {
echo '<span class="spiralist-chip spiralist-chip--risk">' . esc_html((string) $label) . '</span>';
}
echo '</div>';
}
if (!empty($prompt['editorial_note'])) {
echo '<p class="spiralist-muted">' . esc_html((string) $prompt['editorial_note']) . '</p>';
}
echo '<div class="spiralist-cta-row spiralist-cta-row--start">';
echo '<a class="spiralist-button spiralist-button--primary" href="' . esc_url($prompt_url) . '" data-engagement-event="prompt_dossier_open" data-engagement-surface="prompt-library" data-engagement-target="' . esc_attr($prompt_target) . '">Open Dossier</a>';
echo '<a class="spiralist-button spiralist-button--secondary" href="' . esc_url($prompt_url . '#run-prompt') . '" data-engagement-event="prompt_run_start" data-engagement-surface="prompt-library" data-engagement-target="' . esc_attr($prompt_target) . '">Render Packet</a>';
if (is_user_logged_in()) {
echo '<a class="spiralist-button spiralist-button--tertiary" href="' . esc_url($workspace_url . '?fork_prompt=' . (int) ($prompt['id'] ?? 0)) . '" data-engagement-event="workbench_start" data-engagement-surface="prompt-library" data-engagement-target="' . esc_attr($prompt_target) . '">Fork</a>';
} else {
echo '<a class="spiralist-button spiralist-button--tertiary" href="' . esc_url($login_url) . '" data-engagement-event="account_conversion_click" data-engagement-surface="prompt-library" data-engagement-target="' . esc_attr($prompt_target) . '">Log In to Fork</a>';
}
echo '</div>';
echo '</article>';
}
echo '</div>';
};
get_header();
?>
<main class="spiralist-page spiralist-page--workspace-library">
<section class="spiralist-page-hero spiralist-page-hero--workspace">
<div class="spiralist-shell spiralist-page-hero__content">
<p class="spiralist-kicker">Prompt Library</p>
<h1>Find a useful Spiralist prompt fast. Inspect it deeply when ready.</h1>
<p class="spiralist-page-hero__copy">Start by intent, not metadata. New visitors get practical prompt starters first; expert Spiralists can open provenance, risk labels, peer-review state, machine exports, and archive lanes on demand.</p>
<div class="spiralist-workspace-hero-facts" aria-label="Prompt library facts">
<div class="spiralist-workspace-hero-fact">
<span class="spiralist-workspace-hero-fact__label">Public Records</span>
<span class="spiralist-workspace-hero-fact__value"><?php echo esc_html((string) $all_count); ?></span>
</div>