Keeps this page in sync as the body changes. Pause it any time for a quieter view.
Path /specs/idea-dual-identity
Last refresh never
Idea Dual Identity — UUID Primary Key + Structured Human Slug
inventory_source local | spec_api /api/spec-registry/idea-dual-identity | registry_updated 2026-04-09T03:10:08.907796Z
potential_value 0.00 | actual_value 1.00 | value_gap 0.00
estimated_cost 0.00 | actual_cost 1.00 | cost_gap 1.00
estimated_roi 0.00 | actual_roi 1.00
Missing contributor linkage. Submit a change request with contributor attribution.
Open process view for this spec
task_ids -
branches -
source_files -
evidence_refs -
Open implementation view for this spec
implementation_refs -
lineage_ids -
public_endpoints -
summary Ideas currently use a single `id` field that serves two incompatible roles: machine primary
process_summary Idea has UUID4 id (immutable) and slug (mutable, unique, URL-safe); Slug auto-derived from name at creation when omitted; Slug max 80 chars, lowercase, diacritics stripped, deduped with -2 suffix; GET /api/ideas/{slug} resolves same idea as GET /api/ideas/{uuid}; PATCH /api/ideas/{id}/slug renames slug and keeps old slug in history
pseudocode_summary -
implementation_summary api/app/services/idea_service.py (slugify(), update_idea_slug()); api/app/models/idea.py (Idea.slug, Idea.slug_history)