- Backend (FastAPI): - External API authentication (pj-auth-api.vercel.app) - JWT token validation with Redis session storage - RBAC with department isolation - User, Role, Department models with pjctrl_ prefix - Alembic migrations with project-specific version table - Complete test coverage (13 tests) - Frontend (React + Vite): - AuthContext for state management - Login page with error handling - Protected route component - Dashboard with user info display - OpenSpec: - 7 capability specs defined - add-user-auth change archived 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1.3 KiB
1.3 KiB
name: OpenSpec: Apply
description: Implement an approved OpenSpec change and keep tasks in sync.
category: OpenSpec
tags: [openspec, apply]
Guardrails
- Favor straightforward, minimal implementations first and add complexity only when it is requested or clearly required.
- Keep changes tightly scoped to the requested outcome.
- Refer to
openspec/AGENTS.md(located inside theopenspec/directory—runls openspecoropenspec updateif you don't see it) if you need additional OpenSpec conventions or clarifications.
Steps Track these steps as TODOs and complete them one by one.
- Read
changes/<id>/proposal.md,design.md(if present), andtasks.mdto confirm scope and acceptance criteria. - Work through tasks sequentially, keeping edits minimal and focused on the requested change.
- Confirm completion before updating statuses—make sure every item in
tasks.mdis finished. - Update the checklist after all work is done so each task is marked
- [x]and reflects reality. - Reference
openspec listoropenspec show <item>when additional context is required.
Reference
- Use
openspec show <id> --json --deltas-onlyif you need additional context from the proposal while implementing.