Skip to content

Latest commit

 

History

History
694 lines (528 loc) · 31.1 KB

File metadata and controls

694 lines (528 loc) · 31.1 KB

Changemaker Content Planner — Sprint Plan

Project: Changemaker Content Planner Team Lead: Golda Velez Start: April 2026 Sprint Length: 2 weeks

Stack

Layer Technology
Frontend Next.js (App Router), TypeScript, Tailwind CSS, shadcn/ui
API Next.js API Routes (app/api/)
AI Backend amebo (Agent Framework) → Claude API
Database PostgreSQL + Prisma ORM
Vector Store pgvector (for RAG + alignment scoring)

Team

Name Role
Marwan, Kene Backend (API routes, data layer, integrations)
Moka, Zakia, SIA Frontend (UI, components, pages)
Molly Design

Legend

  • [MVP] Core feature
  • [AI] AI integration
  • [DIFF] Differentiator (Catherine's framework)

Tasks are unassigned — pick up tasks on the Taiga board and assign to yourself.


Sprint 1 — Foundation & Setup

Weeks 1–2 Goal: Project scaffolding, tech stack running, user stories written, design specs ready to build from.


PROJECT SETUP

Task 1.1: Initialize Next.js project & folder structure

Tag: [MVP] Setup Description: Initialize the Next.js project with App Router, TypeScript, Tailwind CSS, and shadcn/ui. Establish the folder structure:

app/
  (auth)/          — login, register
  (dashboard)/     — main app pages
  api/             — API route handlers
    health/
    generate/
components/
  ui/              — shadcn/ui components
  calendar/
  composer/
  onboarding/
lib/
  types.ts         — shared TypeScript interfaces
  utils.ts
prisma/
  schema.prisma    — database schema
stores/            — Zustand or React Context state
public/

Set up ESLint, Prettier, and a .env.example with the amebo/Claude API key and DATABASE_URL placeholders.

Done when:

  • Next.js app runs locally with npm run dev
  • Tailwind CSS and shadcn/ui are installed and working
  • At least one shadcn/ui component renders (e.g. Button)
  • /api/health endpoint returns 200
  • Folder structure is documented in README
  • Repo is pushed and README has local setup instructions

Task 1.2: Set up PostgreSQL + Prisma and define data models

Tag: [MVP] Backend Description: Set up PostgreSQL with Prisma ORM. Define the Prisma schema with models for User, Organisation, Role, Post, CalendarEvent, CoreValues, VisionStory, BrandVoice. Write and run initial migrations. Also define corresponding TypeScript interfaces in lib/types.ts for frontend use. Set up a Prisma client singleton for use in API routes.

Done when:

  • PostgreSQL runs locally
  • Prisma is installed and configured with a prisma/schema.prisma
  • All core models exist with migrations applied
  • Prisma client singleton is set up for API routes
  • TypeScript interfaces in lib/types.ts match the Prisma schema
  • Another dev can run npx prisma migrate dev from scratch without errors
  • Seed script exists with sample data for development

Task 1.3: Set up authentication flow

Tag: [MVP] Backend Description: Implement authentication using NextAuth.js with PostgreSQL as the session/user store (via Prisma adapter). Cover: register, login, logout, and session management. Protect dashboard routes so unauthenticated users are redirected to login. Set up role-based access so that only authorised users can access protected endpoints.

Done when:

  • Register and login pages work
  • Session persists across page refreshes
  • Dashboard routes are protected (redirect to login if not authenticated)
  • Logout clears the session
  • Auth state is accessible throughout the app via a hook or context

Task 1.4: Set up amebo AI bridge

Tag: [AI] Backend Description: Set up the amebo agent framework and create the Next.js API route (app/api/generate/route.ts) that acts as the bridge between the frontend and the Claude API. The route receives a context payload from the frontend (topic, platform, content type, user values, vision story), formats it with a system prompt, calls amebo, and returns structured JSON output. API keys must never be exposed to the browser.

Done when:

  • amebo is installed and configured
  • /api/generate endpoint accepts a POST request with a content brief
  • Response returns structured JSON (at minimum: generated text, platform)
  • API key is stored in .env.local and never sent to the client
  • A test request with sample values/vision returns coherent output
  • Error handling covers: missing API key, rate limits, malformed input

FRONTEND

Task 1.5: Write user stories for all MVP features

Tag: [MVP] Frontend Description: Document user stories covering every feature in the MVP scope: content calendar, post composer, approval workflow, asset library, team management, AI suggestions, and the values onboarding flow. Use the format: As a [role], I want to [action] so that [outcome]. Include acceptance criteria for each story. Roles to cover: content creator, team admin, reviewer.

Done when:

  • All MVP features have at least one user story
  • Each story has clear acceptance criteria
  • Stories are reviewed and approved by Golda
  • Added to Taiga backlog

Task 1.6: Build base app shell — layout, nav, sidebar

Tag: [MVP] Frontend Description: Build the main application shell using shadcn/ui components: top navigation bar, collapsible sidebar, and main content area. The sidebar should have nav links for: Dashboard, Calendar, Composer, Assets, Team, Analytics, Settings. Use Next.js App Router layouts so the shell wraps all dashboard pages. Include a responsive mobile menu.

Done when:

  • App shell renders with nav, sidebar, and content area
  • Sidebar links navigate to placeholder pages (can be empty)
  • Layout is responsive (sidebar collapses on mobile)
  • Uses shadcn/ui components consistently
  • Matches the design mockup from Task 1.9 (or uses reasonable defaults if design isn't ready)

Task 1.7: Audit SIA's existing repo & align with stack

Tag: [MVP] Frontend Description: Review any prior work in SIA's existing repository. Identify what can be reused, what needs to be refactored, and what should be discarded. Align the existing code with the agreed stack (Next.js + shadcn/ui) and bring reusable pieces into the main repo or document why they won't be used.

Done when:

  • Existing repo is reviewed and findings are shared with the team
  • Decision documented: reuse / refactor / discard per file or feature
  • Any reusable code is merged or ported into the main repo
  • No duplicate or conflicting codebases exist

DESIGN

Task 1.8: Mockup — values & vision onboarding flow

Tag: [DIFF] Design Fallback: If Molly unavailable → low-fidelity wireframes by a frontend team member Description: Design the onboarding screens where a user defines their core values and vision story — the foundation of Catherine's framework. The flow should feel guided and reflective, not like a form. Reference catherinealonzo.com, the Core Values Discovery Workshop, and the Changemaker's Toolkit Quiz for content and tone. Covers: welcome screen, values selection/input, vision story prompt, and confirmation/summary screen.

Done when:

  • All onboarding screens are designed (min: welcome, values input, vision story, summary)
  • Screens reviewed and approved by Golda
  • Handed off to Frontend with interaction notes

Task 1.9: Mockup — overall app layout, nav, and calendar shell

Tag: [MVP] Design Fallback: If Molly unavailable → functional layout without polish by a frontend team member Description: Design the main application shell: top navigation, sidebar, and the content calendar page layout. This gives Frontend a clear visual target before building Sprint 2 components. Should cover both desktop and a basic mobile/tablet consideration.

Done when:

  • Navigation and sidebar designs are complete
  • Calendar page shell (empty state + populated state) is designed
  • Handed off to Frontend with spacing and component notes

ALL TEAM

Task 1.10: Read and annotate catherinealonzo.com

Tag: [DIFF] All Description: Every team member reads the key pages on catherinealonzo.com: /the-book, /core-values-discovery-workshop, /my-story, /services, and the Changemaker's Toolkit Quiz. The goal is to deeply understand Catherine's methodology so it can be embedded into every part of the product. Take notes and share one key takeaway per person in #changemaker Slack.

Done when:

  • All team members have read the listed pages
  • Each person posts one takeaway in #changemaker Slack
  • A shared summary doc is created with key framework concepts

Task 1.11: Competitive analysis write-up

Tag: [MVP] Research Description: Document a structured comparison of Sprout Social, Jasper, Buffer, Hootsuite, and Planable. Cover: core focus, pricing, AI features, scheduling/publishing, approval workflows, and what each lacks. Conclude with a clear statement of our differentiation and the gap we fill.

Done when:

  • All five tools are covered with consistent structure
  • A differentiation statement is written and approved by Golda
  • Doc is saved to the project Drive folder

Task 1.12: Draft AI prompt strategy document

Tag: [AI] Research Description: Document how a user's core values and vision story will be injected into AI system prompts (via amebo → Claude) to generate aligned content. Define the prompt structure, what user data is included, how it is formatted, and how it will vary by content type (caption, blog, hashtags). This doc becomes the spec for Sprint 4 AI development.

Done when:

  • Prompt structure is documented with at least two worked examples
  • Covers how values and vision story are formatted in the system prompt
  • Reviewed by Golda and added to the project Drive folder

Sprint 2 — Calendar & Composer Core

Weeks 3–4 Goal: Users can plan content on a visual calendar and write/preview posts in a multi-platform composer.


BACKEND (API Routes)

Task 2.1: Post & calendar data models

Tag: [MVP] Backend Description: Extend the Prisma schema with models for Post and CalendarEvent. A Post should store: content body, per-platform variants (JSON field keyed by platform), status (draft | review | approved | published | failed), scheduled datetime, target platforms, author relation, and organisation relation. Run migrations and update the seed script.

Done when:

  • Post and CalendarEvent models exist in the Prisma schema with migrations applied
  • Relations to User and Organisation are correctly defined
  • Seed script includes sample posts and calendar events
  • Prisma client can query these models without errors

Task 2.2: CRUD API routes for posts and calendar

Tag: [MVP] Backend Description: Build Next.js API routes for creating, reading, updating, and deleting posts and calendar events. Endpoints:

  • POST /api/posts — create
  • GET /api/posts — list (with query params for date range, platform, status)
  • GET /api/posts/[id] — get single
  • PUT /api/posts/[id] — update
  • DELETE /api/posts/[id] — delete
  • Same pattern for /api/calendar

Done when:

  • Full CRUD for Post and CalendarEvent works via API routes
  • Filtering by date, platform, and status works
  • Tested with sample requests and documented
  • Frontend can call these endpoints

Task 2.3: Platform OAuth setup (begin)

Tag: [MVP] Backend Description: Start implementing OAuth2 connection flows for Instagram, X (Twitter), LinkedIn, and Facebook. Users should be able to connect and disconnect their social accounts from their profile. Critical: Apply for Meta API access immediately — approval can take weeks and Sprint 3 auto-publish depends on it.

Done when:

  • OAuth connect/disconnect flow works for at least 1 platform
  • Tokens are stored securely in the database (encrypted)
  • Connected accounts are visible in the user profile
  • Meta API access has been applied for
  • OAuth architecture supports adding more platforms easily

FRONTEND

Task 2.4: Visual calendar — month/week view with drag-and-drop

Tag: [MVP] Frontend Description: Build a content calendar using shadcn/ui's calendar components (or a compatible React library like @dnd-kit for drag-and-drop). Toggleable month and week views. Posts appear as cards on their scheduled date. Users can drag and drop a post card to reschedule it. Connects to the posts/calendar API routes.

Done when:

  • Month view and week view both render correctly
  • Posts appear on the correct scheduled date
  • Drag-and-drop updates the scheduled date via API
  • Empty state is handled gracefully
  • Works on desktop screen sizes

Task 2.5: Multi-platform post composer

Tag: [MVP] Frontend Description: Build a post creation/editing component where users write content once and can customise it per platform (Instagram, X, LinkedIn, Facebook). Each platform tab shows character limits, relevant restrictions, and a customisation field. Uses shadcn/ui Tabs, Textarea, and Form components. Connects to the Post API routes.

Platform limits:

  • X: 280 characters
  • Instagram: 2,200 characters
  • LinkedIn: 3,000 characters
  • Facebook: 63,206 characters

Done when:

  • User can write a base post and open per-platform tabs
  • Character limits are enforced and displayed per platform
  • Post is saved as a draft via the API
  • Form validates before submission

Task 2.6: Per-platform post preview

Tag: [MVP] Frontend Description: Build preview components that render what a post will look like on Instagram, X, LinkedIn, and Facebook. Previews should reflect the per-platform customised content and attached media. These are visual mockups — not live embeds. Each preview mimics the platform's card style.

Done when:

  • Preview exists for all 4 platforms
  • Preview reflects platform-specific content edits
  • Media placeholder is shown in the preview
  • Previews update in real time as the user types

DESIGN

Task 2.7: Core values discovery flow — spec & mockup

Tag: [DIFF] Design Fallback: If Molly unavailable → Golda + a frontend team member draft the flow spec in writing Description: Design the full interactive flow for a user to discover and define their 3–5 core values. Based on Catherine's Core Values Discovery Workshop. Should feel like a guided exercise, not a settings page. Include: intro/context screen, value selection or ranking, reflection prompts, and a final values summary the user can edit.

Done when:

  • Full flow is designed (min: intro, selection, reflection, summary)
  • Reviewed and approved by Golda
  • Handed off with interaction and copy notes

RESEARCH

Task 2.8: RAG source strategy document

Tag: [AI] Research Description: Document the approach for building the RAG (Retrieval-Augmented Generation) knowledge store using pgvector. Define what sources users can add (website URLs, uploaded articles, past posts), how content will be chunked, how embeddings will be generated and stored, and how they will be retrieved at prompt time. This spec drives Sprint 4 backend work.

Done when:

  • Source types are defined (URLs, uploads, past posts)
  • Chunking and embedding strategy is documented
  • Retrieval approach is outlined
  • Reviewed by the backend team and saved to Drive

Task 2.9: UX copy — onboarding screens

Tag: [MVP] Research Description: Write all interface copy for the onboarding flow: headlines, descriptions, button labels, placeholder text, helper text, and empty states. Copy should reflect Catherine's voice — warm, purposeful, and direct. Reference her book and website for tone.

Done when:

  • Copy covers all onboarding screens from the Sprint 1 mockup
  • Reviewed and approved by Golda
  • Delivered in a doc that maps copy to each screen/component

Sprint 3 — Publishing & Approvals

Weeks 5–6 Goal: Posts can be reviewed, approved, auto-published, and basic analytics surfaced.


BACKEND

Task 3.2: Auto-publish scheduler

Tag: [MVP] Backend Description: Build a background job system that publishes approved posts to their target platforms at the scheduled time. Options: Next.js cron via Vercel, a separate worker process, or a lightweight job queue. Handle failures gracefully — log errors, update post status to failed, and surface the error to the user.

Done when:

  • Scheduler runs as a background process or cron
  • Approved posts publish to at least one platform at scheduled time
  • Failed publishes update post status and log the error
  • Retry logic exists for transient failures

Task 3.3: Approval workflow state machine

Tag: [MVP] Backend Description: Implement the post status lifecycle: draftreviewapprovedpublished (or failed). Enforce valid state transitions via the API — e.g. a post cannot go from draft to published without passing through approved. Log status changes with timestamp and actor.

Done when:

  • All state transitions are enforced via API routes
  • Invalid transitions return a clear error
  • Status change history is stored (who changed what, when)
  • Tested with at least one full workflow run

Task 3.4: Basic analytics data ingestion

Tag: [MVP] Backend Description: Fetch basic post performance metrics from connected platform APIs after publishing (likes, reach, impressions, comments, shares where available). Store metrics against the post record. Schedule a periodic refresh.

Done when:

  • Metrics are fetched for at least 2 platforms post-publish
  • Data is stored against the Post model
  • Periodic refresh job runs without errors
  • Metrics are accessible via an API endpoint

FRONTEND

Task 3.5: Approval workflow UI

Tag: [MVP] Frontend Description: Build the UI for the post review and approval process. Reviewers should be able to see posts awaiting review, leave comments, approve, or request changes. Status badges (using shadcn/ui Badge component) should be visible on post cards throughout the app.

Done when:

  • Posts in review status are shown in a dedicated view
  • Reviewer can approve or request changes with an optional comment
  • Status badges appear correctly on calendar and list views
  • Actions call the correct API endpoints

Task 3.6: Team roles & permissions UI

Tag: [MVP] Frontend Description: Build the team management screen where an org admin can invite members, assign roles (admin, editor, reviewer), and remove members. Role changes should take effect immediately across the app. Use shadcn/ui Table, Dialog, and Select components.

Done when:

  • Admin can invite a new user by email
  • Roles can be assigned and changed
  • Removing a member revokes their access
  • UI is permission-aware (non-admins cannot see this screen)

Task 3.7: Basic analytics dashboard

Tag: [MVP] Frontend Description: Build an analytics overview page showing post performance across platforms. Include a summary of published posts, total reach/impressions, and a list of recent posts with their key metrics. Use a charting library compatible with React (e.g. Recharts) for trends.

Done when:

  • Dashboard loads and displays real data from the API
  • At least one chart shows a trend (e.g. posts per week)
  • Per-post metrics are shown in a list
  • Empty state is handled (no data yet)

DESIGN

Task 3.8: Vision story builder — spec & flow

Tag: [DIFF] Design Fallback: If Molly unavailable → Golda + a frontend team member own this spec Description: Design the guided flow for users to write their Vision Story — a narrative describing the world as they believe it should be. Based on Catherine's framework. Should include: a framing/context screen explaining what a vision story is, guided prompts to help the user write it, and a final editable text area with a save action.

Done when:

  • Full flow designed (min: intro, guided prompts, final editor)
  • Reviewed and approved by Golda
  • Handed off with copy and interaction notes

Task 3.9: Brand voice onboarding spec

Tag: [AI] Design / Research Fallback: If Molly unavailable → a frontend team member owns this Description: Define the UX for how users train their brand voice from existing content. Users should be able to paste in sample posts, upload documents, or link their website. The system analyses the content and generates a brand voice summary the user can review and edit. This spec feeds into Sprint 4 AI development.

Done when:

  • Input methods defined (paste, upload, URL)
  • Output format (voice summary) is specced
  • Edge cases handled (not enough content, conflicting tone)
  • Reviewed by Golda and saved to Drive

RESEARCH

Task 3.10: Asset library spec & folder structure

Tag: [MVP] Research Description: Define the structure of the asset library: folder hierarchy, supported file types (images, video, templates), upload limits, and how assets are linked to posts. Include a spec for the UI — grid view, search, filter by type/date. Note: for Sprint 1–2 the AI provides "Image/Media Prompts" instead of hosting media. This spec is for when we add real asset hosting.

Done when:

  • File types and upload limits are defined
  • Folder/tag structure is documented
  • UI spec covers grid view, search, and filter
  • Reviewed by Golda and saved to Drive

Sprint 4 — AI Integration & Differentiators

Weeks 7–8 Goal: Values-aligned AI content generation live via amebo; onboarding connects to AI prompts; alignment scoring works.


BACKEND

Task 4.1: AI content generation endpoint (amebo integration)

Tag: [AI] Backend Description: Enhance the /api/generate endpoint to accept a full content brief (topic, platform, content type) and return AI-generated suggestions (caption, hashtags, content ideas) via amebo → Claude. The user's core values and vision story are injected into the system prompt so all suggestions are values-aligned. Uses the prompt structure defined in Sprint 1 (Task 1.12).

Response format (structured JSON):

{
  "suggestions": [
    {
      "platform": "instagram",
      "caption": "...",
      "hashtags": ["..."],
      "mediaPrompt": "..."
    }
  ],
  "alignmentScore": 85
}

Done when:

  • Endpoint accepts brief and returns at least 3 suggestions
  • Values and vision story are included in the system prompt
  • Platform-specific constraints are respected (length, tone)
  • Response time is under 10 seconds
  • Endpoint is documented

Task 4.2: RAG pipeline — pgvector source ingestion

Tag: [AI] Backend Description: Enable the pgvector extension on PostgreSQL and build the pipeline that ingests user-provided sources (URLs, uploaded documents, past posts) into pgvector as embeddings. At prompt time, retrieve the most relevant chunks and include them in the amebo/Claude context. Uses the strategy documented in Sprint 2 (Task 2.8).

Done when:

  • pgvector extension is enabled on PostgreSQL
  • At least 2 source types can be ingested (e.g. URL + past posts)
  • Content is chunked, embedded, and stored in pgvector
  • Retrieval returns relevant chunks for a given query
  • Ingestion job can be triggered manually and runs without errors

Task 4.3: Alignment scoring engine

Tag: [DIFF] Backend Description: Build a scoring system that measures how well a piece of content aligns with the user's stated core values and vision story. Use cosine similarity via pgvector — embed both the post content and the user's values profile, and compute a similarity score. Return the score and a brief breakdown per value.

Done when:

  • Score is computed and returned for any post
  • Score is between 0–100 and is meaningful (tested with clearly aligned vs misaligned examples)
  • Per-value breakdown is returned alongside the total score
  • Score is stored on the Post model and accessible via API

FRONTEND

Task 4.4: Build values & vision onboarding flow

Tag: [DIFF] Frontend Description: Implement the values and vision story onboarding flow from the designs produced in Sprint 1 (Task 1.8). Users complete this during signup or from their profile. The completed values and vision story are saved to their profile and used in all AI prompts going forward. Uses shadcn/ui Stepper, Card, and Form components.

Done when:

  • All onboarding screens are built to spec
  • Values and vision story are saved to the user profile via API
  • Flow is skippable but prompted again if empty
  • Works on desktop and mobile

Task 4.5: AI suggestions panel in the composer

Tag: [AI] Frontend Description: Add an AI suggestions panel to the post composer. Users can request caption suggestions, hashtag ideas, or a full content idea based on their brief. Suggestions are generated using the /api/generate endpoint and reflect the user's values. Users can accept, edit, or dismiss suggestions. Uses shadcn/ui Sheet or Drawer component.

Done when:

  • Panel opens in the composer and calls the AI endpoint
  • At least 3 suggestions are displayed
  • User can insert a suggestion into the composer with one click
  • Loading and error states are handled
  • Does not block the composer while loading

Task 4.6: Alignment score display on posts

Tag: [DIFF] Frontend Description: Show the alignment score on each post card and in the post detail view. Include a visual indicator (e.g. a coloured badge or progress ring) and a tooltip or expandable section showing the per-value breakdown. Score should update when post content is edited.

Done when:

  • Score badge is visible on post cards in the calendar and list views
  • Post detail shows per-value breakdown
  • Score refreshes when content is edited (on save or debounced)
  • Colour coding reflects score range (green ≥75, yellow 50–74, red <50)

QA / ALL TEAM

Task 4.7: Prompt engineering — values layer tuning

Tag: [AI] Research Description: Test and refine the amebo/Claude system prompts using real values and vision story examples from Catherine's framework. Run at least 10 varied test cases across different content types and platforms. Document what works, what doesn't, and the final prompt structure used in production.

Done when:

  • At least 10 test cases documented with inputs and outputs
  • Prompts produce noticeably more aligned content vs baseline (no values)
  • Final prompt structure is documented and committed to the repo
  • Reviewed by Golda

Task 4.8: End-to-end QA — full content workflow

Tag: [MVP] All Description: Run a complete end-to-end test of the entire product flow: onboarding (values + vision) → create post in composer → AI suggestions → schedule on calendar → approval workflow → auto-publish → analytics. Log all bugs found in Taiga. Every team member should run through the flow independently.

Done when:

  • All team members have completed the full flow
  • All critical and high bugs are logged in Taiga
  • No blocker bugs remain unresolved
  • A short test report is written and shared in Slack

Task 4.9: Beta user testing plan

Tag: [DIFF] Research Description: Create a plan for recruiting and running beta testing with users from Catherine's community (workshop participants, podcast listeners, newsletter subscribers). Define: who to recruit, how many, what tasks to test, what feedback to capture, and how findings will feed back into the product.

Done when:

  • Recruitment approach is defined (channel, message, criteria)
  • At least 5 beta users are identified or confirmed
  • Test script / task list is written
  • Feedback capture method is set up (form, interview guide, etc.)
  • Plan is reviewed and approved by Golda

Notes & Risks

Risk Mitigation
Molly's availability Every Design task has a fallback noted. Golda approves UX decisions.
SIA's existing repo Must be reviewed in Sprint 1 (Task 1.7) before any new code is written to avoid duplicate work.
Meta/Instagram API approval Apply for access in Sprint 2 (Task 2.3). Approval can take weeks — Sprint 3 auto-publish depends on it.
PostgreSQL setup DB is set up in Sprint 1 (Task 1.2). All team members need PostgreSQL running locally — document setup clearly in README.
amebo framework maturity Run a quick spike in Sprint 1 (part of Task 1.4) to validate amebo works for our use case before building on it.
API contract between backend & frontend Define TypeScript types in lib/types.ts as the shared contract — both API routes and frontend import from the same source.

Task Summary by Sprint

Sprint 1 (12 tasks)

ID Task Tag Role
1.1 Initialize Next.js project & folder structure [MVP] Setup
1.2 Set up PostgreSQL + Prisma and define data models [MVP] Backend
1.3 Set up authentication flow [MVP] Backend
1.4 Set up amebo AI bridge [AI] Backend
1.5 Write user stories for all MVP features [MVP] Frontend
1.6 Build base app shell — layout, nav, sidebar [MVP] Frontend
1.7 Audit SIA's existing repo & align with stack [MVP] Frontend
1.8 Mockup — values & vision onboarding flow [DIFF] Design
1.9 Mockup — overall app layout, nav, calendar shell [MVP] Design
1.10 Read and annotate catherinealonzo.com [DIFF] All
1.11 Competitive analysis write-up [MVP] Research
1.12 Draft AI prompt strategy document [AI] Research

Sprint 2 (9 tasks)

ID Task Tag Role
2.1 Post & calendar data models [MVP] Backend
2.2 CRUD API routes for posts and calendar [MVP] Backend
2.3 Platform OAuth setup (begin) [MVP] Backend
2.4 Visual calendar — month/week view with drag-and-drop [MVP] Frontend
2.5 Multi-platform post composer [MVP] Frontend
2.6 Per-platform post preview [MVP] Frontend
2.7 Core values discovery flow — spec & mockup [DIFF] Design
2.8 RAG source strategy document [AI] Research
2.9 UX copy — onboarding screens [MVP] Research

Sprint 3 (9 tasks)

ID Task Tag Role
3.2 Auto-publish scheduler [MVP] Backend
3.3 Approval workflow state machine [MVP] Backend
3.4 Basic analytics data ingestion [MVP] Backend
3.5 Approval workflow UI [MVP] Frontend
3.6 Team roles & permissions UI [MVP] Frontend
3.7 Basic analytics dashboard [MVP] Frontend
3.8 Vision story builder — spec & flow [DIFF] Design
3.9 Brand voice onboarding spec [AI] Design / Research
3.10 Asset library spec & folder structure [MVP] Research

Sprint 4 (9 tasks)

ID Task Tag Role
4.1 AI content generation endpoint (amebo) [AI] Backend
4.2 RAG pipeline — pgvector source ingestion [AI] Backend
4.3 Alignment scoring engine [DIFF] Backend
4.4 Build values & vision onboarding flow [DIFF] Frontend
4.5 AI suggestions panel in the composer [AI] Frontend
4.6 Alignment score display on posts [DIFF] Frontend
4.7 Prompt engineering — values layer tuning [AI] Research
4.8 End-to-end QA — full content workflow [MVP] All
4.9 Beta user testing plan [DIFF] Research

Total: 39 tasks across 4 sprints