Initial commit — Singular Particular Space v1

Homepage (site/index.html): integration-v14 promoted, Writings section
integrated with 33 pieces clustered by type (stories/essays/miscellany),
Writings welcome lightbox, content frame at 98% opacity.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-27 12:09:22 +02:00
commit 5422131782
359 changed files with 117437 additions and 0 deletions

77
spores/builder-spores.md Normal file
View File

@@ -0,0 +1,77 @@
# builder-spores.md
# task-class: builder
# scion-model: gemini-2.5-flash
# token-budget: 800
# last-updated: 2026-03-24
---
spore: aesthetic-contract
task-class: builder
scion-model: gemini-2.5-flash
deposited: 2026-03-24
hook: nil
---
policy: all built pages must match the star-map aesthetic contract in commission brief
trigger: PostToolUse · tool=Write · file_path in site/ · ext .html
on-match: allow
on-novel: escalate to parent
---
spore: no-self-hosted-video
task-class: builder
scion-model: gemini-2.5-flash
deposited: 2026-03-24
hook: hooks/video-embed-guard.js
---
policy: deny any video file reference that is not an external embed URL
trigger: PreToolUse · tool=Write · content contains <video src= with local path
on-match: deny
on-novel: escalate to parent
---
spore: no-large-file-commit
task-class: builder
scion-model: gemini-2.5-flash
deposited: 2026-03-24
hook: hooks/large-file-guard.py
---
policy: deny writes of files >1MB to site/; use FileBrowser URL reference instead
trigger: PreToolUse · tool=Write · file_path in site/ · file_size > 1MB
on-match: deny
on-novel: escalate to parent
---
spore: output-to-site-only
task-class: builder
scion-model: gemini-2.5-flash
deposited: 2026-03-24
hook: nil
---
policy: write built output to site/{section}/ only; never write directly to ToBuild or DumperCan
trigger: PreToolUse · tool=Write · file_path not in site/
on-match: deny
on-novel: escalate to parent
---
spore: nav-back-required
task-class: builder
scion-model: gemini-2.5-flash
deposited: 2026-03-24
hook: nil
---
policy: every built page must include a back link to the star-map home page
trigger: PostToolUse · tool=Write · file_path in site/ · ext .html · no back-link detected
on-match: escalate
on-novel: escalate to parent
---
spore: skill-scout-required
task-class: builder
scion-model: gemini-2.5-flash
deposited: 2026-03-24
hook: nil
---
policy: parent must run skill-scout before commissioning builder; section-appropriate skill must be bundled
trigger: SessionStart · source=startup · SCION_EXTERNAL_SKILL unset
on-match: escalate
on-novel: escalate to parent

View File

@@ -0,0 +1,34 @@
# commit-tracker-spores.md
# task-class: commit-tracker
# scion-model: n/a — hook-maintained, not scion-maintained
# token-budget: n/a — read by parent agent, not scion
# last-updated: 2026-03-24
#
# NOTE: This file uses spores as state flags, not policy decisions.
# Entries are written by the commit-state-hook.py PostToolUse hook
# and read by the parent agent to determine commit readiness.
# This is a novel usage pattern — documented in SEEDS.md.
---
spore: uncommitted-changes-state
task-class: commit-tracker
scion-model: n/a
deposited: 2026-03-24
hook: hooks/commit-state-hook.py
---
policy: flag when site/ has been written since last confirmed git push
trigger: PostToolUse · tool=Write · file_path in site/
status: clean # clean | pending | confirmed
pending-sections: [] # list of site/ paths written since last commit
last-commit: null # ISO datetime of last confirmed push
last-write: null # ISO datetime of most recent site/ write
on-novel: escalate to parent
# --- STATE LOG ---
# Hook appends entries here as writes occur and clears on confirmed commit.
# Parent reads this section to determine whether to proceed with next build.
#
# Format:
# [YYYY-MM-DD HH:MM] PENDING site/index.html
# [YYYY-MM-DD HH:MM] PENDING site/writings/essay-one.html
# [YYYY-MM-DD HH:MM] COMMITTED all — confirmed push to gitea

150
spores/designer-spores.md Normal file
View File

@@ -0,0 +1,150 @@
# designer-spores.md
# task-class: designer
# scion-model: gemini-2.5-pro / claude-sonnet
# token-budget: 1200
# last-updated: 2026-03-26
# external-skills: frontend-design (anthropics/skills), ux-design (wondelai/skills)
---
spore: output-to-playground-only
task-class: designer
scion-model: gemini-2.5-pro
deposited: 2026-03-26
hook: nil
---
policy: write all design output to CREATURE-PLAYGROUND/homepage-redesign/{agent}-drafts/ only
trigger: PreToolUse · tool=Write · file_path not in CREATURE-PLAYGROUND/homepage-redesign/
on-match: deny
on-novel: escalate to parent
---
spore: no-direct-site-writes
task-class: designer
scion-model: gemini-2.5-pro
deposited: 2026-03-26
hook: nil
---
policy: never write to site/ — only the parent integrates designs into the live page
trigger: PreToolUse · tool=Write · file_path in site/
on-match: deny
on-novel: escalate to parent
---
spore: uncodixfy-compliance
task-class: designer
scion-model: gemini-2.5-pro
deposited: 2026-03-26
hook: nil
---
policy: read CREATURE-PLAYGROUND/Uncodixfy.md before generating any visual design
trigger: SessionStart · source=startup
on-match: allow
on-novel: escalate to parent
---
spore: aesthetic-brief-required
task-class: designer
scion-model: gemini-2.5-pro
deposited: 2026-03-26
hook: nil
---
policy: read CREATURE-PLAYGROUND/homepage-redesign/aesthetic-brief.md before designing
trigger: SessionStart · source=startup
on-match: allow
on-novel: escalate to parent
---
spore: no-banned-fonts
task-class: designer
scion-model: gemini-2.5-pro
deposited: 2026-03-26
hook: nil
---
policy: never use Cinzel, Raleway, Calibri, Segoe UI, Trebuchet, Arial, Inter, or Roboto
trigger: PostToolUse · tool=Write · content contains banned font-family
on-match: deny
on-novel: escalate to parent
---
spore: radius-ceiling
task-class: designer
scion-model: gemini-2.5-pro
deposited: 2026-03-26
hook: nil
---
policy: no border-radius value may exceed 10px in any CSS rule
trigger: PostToolUse · tool=Write · ext .html · border-radius > 10px
on-match: deny
on-novel: escalate to parent
---
spore: shadow-ceiling
task-class: designer
scion-model: gemini-2.5-pro
deposited: 2026-03-26
hook: nil
---
policy: no box-shadow blur value may exceed 8px in any CSS rule
trigger: PostToolUse · tool=Write · ext .html · blur > 8px
on-match: deny
on-novel: escalate to parent
---
spore: no-glassmorphism
task-class: designer
scion-model: gemini-2.5-pro
deposited: 2026-03-26
hook: nil
---
policy: no backdrop-filter, no frosted glass, no blur effects on UI surfaces
trigger: PostToolUse · tool=Write · content contains backdrop-filter
on-match: deny
on-novel: escalate to parent
---
spore: single-file-output
task-class: designer
scion-model: gemini-2.5-pro
deposited: 2026-03-26
hook: nil
---
policy: all drafts must be single self-contained HTML files with inline CSS and JS
trigger: PostToolUse · tool=Write · ext not .html
on-match: deny
on-novel: escalate to parent
---
spore: coordination-update
task-class: designer
scion-model: gemini-2.5-pro
deposited: 2026-03-26
hook: nil
---
policy: update coordination.md status log after producing each draft
trigger: Stop · source=task-complete
on-match: allow
on-novel: escalate to parent
---
spore: defer-to-parent
task-class: designer
scion-model: gemini-2.5-pro
deposited: 2026-03-26
hook: nil
---
policy: defer all architectural and conflict decisions to the parent agent (Opus)
trigger: PreToolUse · tool=Write · decision-conflict detected
on-match: escalate
on-novel: escalate to parent
---
spore: external-skills-required
task-class: designer
scion-model: gemini-2.5-pro
deposited: 2026-03-26
hook: nil
---
policy: read fetched external skills before designing — frontend-design SKILL.md and ux-design SKILL.md from skills/commissioning-skill/fetched-skills/. Load specific references from ux-design/references/ when working on accessibility (refui-accessibility-depth, uxh-wcag-checklist), animation (refui-animation-microinteractions), dark theming (refui-theming-dark-mode), or usability review (uxh-nielsen-heuristics, uxh-audit-template).
trigger: SessionStart · source=startup
on-match: allow
on-novel: escalate to parent

89
spores/sorter-spores.md Normal file
View File

@@ -0,0 +1,89 @@
# sorter-spores.md
# task-class: sorter
# scion-model: haiku-4.5
# token-budget: 600
# last-updated: 2026-03-24
---
spore: audio-route
task-class: sorter
scion-model: haiku-4.5
deposited: 2026-03-24
hook: nil
---
policy: move audio files to ToBuild/music/
trigger: PreToolUse · tool=Write · file_path in DumperCan · ext in .mp3 .flac .wav .ogg .aac
on-match: allow
on-novel: escalate to parent
---
spore: video-route
task-class: sorter
scion-model: haiku-4.5
deposited: 2026-03-24
hook: nil
---
policy: move video files to ToBuild/videos/
trigger: PreToolUse · tool=Write · file_path in DumperCan · ext in .mp4 .mov .webm .mkv
on-match: allow
on-novel: escalate to parent
---
spore: image-route
task-class: sorter
scion-model: haiku-4.5
deposited: 2026-03-24
hook: nil
---
policy: move image files to ToBuild/images/
trigger: PreToolUse · tool=Write · file_path in DumperCan · ext in .jpg .jpeg .png .webp .gif .svg
on-match: allow
on-novel: escalate to parent
---
spore: writing-md-route
task-class: sorter
scion-model: haiku-4.5
deposited: 2026-03-24
hook: nil
---
policy: move .md files to ToBuild/writings/ using filename for sub-classification
trigger: PreToolUse · tool=Write · file_path in DumperCan · ext .md · not playlist or watchlist
on-match: allow
on-novel: escalate to parent
---
spore: playlist-route
task-class: sorter
scion-model: haiku-4.5
deposited: 2026-03-24
hook: nil
---
policy: move playlist files to ToBuild/playlists/
trigger: PreToolUse · tool=Write · file_path in DumperCan · filename contains playlist or .csv
on-match: allow
on-novel: escalate to parent
---
spore: large-file-block
task-class: sorter
scion-model: haiku-4.5
deposited: 2026-03-24
hook: hooks/large-file-guard.py
---
policy: block any file >1MB from entering ToBuild; log to DumperCan/oversized/
trigger: PreToolUse · tool=Write · file_size > 1MB
on-match: deny
on-novel: escalate to parent
---
spore: ambiguous-escalate
task-class: sorter
scion-model: haiku-4.5
deposited: 2026-03-24
hook: nil
---
policy: escalate files with no clear section match rather than guess
trigger: PreToolUse · tool=Write · file_path in DumperCan · no routing rule matched
on-match: escalate
on-novel: escalate to parent