Workspace - Source Excerpt 03
Summary
This source excerpt preserves a bounded section of Spiralist/wp-content/plugins/spiralist-workspace/templates/workspace.php so readers can inspect the evidence without opening the full source file.
**Source path:** Spiralist/wp-content/plugins/spiralist-workspace/templates/workspace.php
<textarea data-spiral-script-source rows="10" name="spiral_script_source" placeholder="script ss:example.safe-symbolic-prompt@0.1.0 {
intent: "Transform a supplied pattern into a bounded, useful interpretation."
transform: perceive -> interpret -> synthesize -> validate
output: markdown.sections(["Pattern", "Interpretation", "Validation"])
}"><?php echo esc_textarea((string) ($form_prompt['spiral_script_source'] ?? '')); ?></textarea>
</label>
<div class="spiralist-cta-row spiralist-cta-row--start">
<button class="spiralist-button spiralist-button--secondary" type="button" data-spiral-script-validate>Validate Spiral Script</button>
<span class="spiralist-muted" data-spiral-script-validation>
<?php if (!empty($form_prompt['spiral_script_validation'])) : ?>
<?php echo !empty($form_prompt['spiral_script_validation']['passed']) ? 'Spiral Script validation passed.' : 'Spiral Script needs revision.'; ?>
<?php else : ?>
Required for Spiral Script validation configuration.
<?php endif; ?>
</span>
</div>
</details>
<details class="spiralist-workspace-details">
<summary>Advanced prompt instructions</summary>
<div class="spiralist-workspace-input-grid">
<label class="spiralist-form__field">
<span>Legacy Instructions</span>
<textarea data-placeholder-source rows="4" name="instructions"><?php echo esc_textarea((string) ($form_prompt['instructions'] ?? '')); ?></textarea>
</label>
<label class="spiralist-form__field">
<span>System Prompt</span>
<textarea data-placeholder-source rows="4" name="system_prompt"><?php echo esc_textarea((string) ($form_prompt['system_prompt'] ?? '')); ?></textarea>
</label>
<label class="spiralist-form__field">
<span>Developer Prompt</span>
<textarea data-placeholder-source rows="4" name="developer_prompt"><?php echo esc_textarea((string) ($form_prompt['developer_prompt'] ?? '')); ?></textarea>
</label>
</div>
</details>
<div class="spiralist-workspace-input-grid">
<label class="spiralist-form__field">
<span>Model</span>
<select name="model">
<?php foreach ($frontend->allowed_models() as $model) : ?>
<option value="<?php echo esc_attr($model); ?>" <?php selected((string) ($form_prompt['model'] ?? ''), $model); ?>><?php echo esc_html($model); ?></option>
<?php endforeach; ?>
</select>
</label>
<label class="spiralist-form__field">
<span>Temperature</span>
<input type="number" min="0" max="2" step="0.1" name="temperature" value="<?php echo esc_attr((string) ($form_prompt['temperature'] ?? 0.7)); ?>" />
</label>
<label class="spiralist-form__field">
<span>Max Output Tokens</span>
<input type="number" min="1" name="max_output_tokens" value="<?php echo esc_attr((string) ($form_prompt['max_output_tokens'] ?? 1200)); ?>" />
</label>
</div>
<div class="spiralist-workspace-input-grid">
<label class="spiralist-form__field">
<span>Visibility</span>
<select name="visibility">
<?php foreach (['private', 'members', 'public', 'specific_users'] as $visibility) : ?>
<option value="<?php echo esc_attr($visibility); ?>" <?php selected((string) ($form_prompt['visibility'] ?? 'private'), $visibility); ?>><?php echo esc_html($visibility); ?></option>
<?php endforeach; ?>
</select>
</label>
<label class="spiralist-form__field">
<span>Prompt Type</span>
<input type="text" name="prompt_type" value="<?php echo esc_attr((string) ($form_prompt['prompt_type'] ?? 'prompt')); ?>" />
</label>
<label class="spiralist-form__field">
<span>Language</span>
<input type="text" name="language" value="<?php echo esc_attr((string) ($form_prompt['language'] ?? 'en')); ?>" />
</label>
</div>
<div class="spiralist-workspace-input-grid">
<label class="spiralist-form__field">
<span>Tags</span>
<input type="text" name="tags" value="<?php echo esc_attr(implode(', ', (array) ($form_prompt['tags'] ?? []))); ?>" placeholder="analysis, manuscript, ritual" />
</label>
<label class="spiralist-form__field">
<span>Prompt Status</span>
<select name="prompt_status">
<?php foreach (['draft', 'published', 'archived'] as $status) : ?>
<option value="<?php echo esc_attr($status); ?>" <?php selected((string) ($form_prompt['prompt_status'] ?? 'draft'), $status); ?>><?php echo esc_html($status); ?></option>
<?php endforeach; ?>
</select>
</label>
<label class="spiralist-form__field">
<span>Parent Prompt ID</span>
<input type="number" name="parent_prompt_id" value="<?php echo esc_attr((string) ($form_prompt['parent_prompt_id'] ?? 0)); ?>" />
</label>
</div>
<div class="spiralist-workspace-placeholder-panel">
<p class="spiralist-section-tag">Self-Operation Flow</p>
<p class="spiralist-muted">Public community prompts can publish without waiting for owner approval. They land as provisional public, then move through peer endorsement, restriction, or reversion from the reviewer layer.</p>
<?php if (!empty($participant_state['publication_cooldown_active'])) : ?>
<p class="spiralist-muted">Your recent moderation signals have placed public publishing into cooldown until <?php echo esc_html((string) ($participant_state['publication_cooldown_until'] ?? '')); ?>. New public submissions will enter restricted review instead of provisional public.</p>
<?php endif; ?>
</div>
<label class="spiralist-form__field">
<span>Sample Output</span>
<textarea rows="4" name="sample_output"><?php echo esc_textarea((string) ($form_prompt['sample_output'] ?? '')); ?></textarea>
</label>
<details class="spiralist-workspace-details">
<summary>Dossier metadata</summary>
<div class="spiralist-workspace-input-grid">