216 lines
7.5 KiB
Markdown
216 lines
7.5 KiB
Markdown
# Copilot Instructions: Google Drive Content Adapter
|
|
|
|
This project uses **Specify** (Spec-Driven Development workflow) to manage feature development through structured specifications, planning, and task execution.
|
|
|
|
## Project Status
|
|
|
|
**Early Stage**: This repository was recently initialized from the Specify template. No production code exists yet—only the Specify workflow infrastructure.
|
|
|
|
## Workflow Commands
|
|
|
|
All feature development follows the Specify workflow using specialized agents:
|
|
|
|
### Feature Lifecycle
|
|
|
|
1. **Create specification**: `/speckit.specify [feature description]`
|
|
- Generates `specs/[###-feature-name]/spec.md` with user stories, requirements, and edge cases
|
|
- Creates feature branch
|
|
|
|
2. **Create implementation plan**: `/speckit.plan`
|
|
- Generates `plan.md` with tech stack, architecture, and project structure
|
|
- Produces research artifacts and API contracts
|
|
- Must pass constitution checks before proceeding
|
|
|
|
3. **Generate tasks**: `/speckit.tasks`
|
|
- Creates `tasks.md` with dependency-ordered implementation tasks
|
|
- Groups tasks by user story for independent implementation
|
|
- Enables parallel development where possible
|
|
|
|
4. **Execute implementation**: `/speckit.implement`
|
|
- Processes tasks from `tasks.md`
|
|
- Checks checklists before proceeding (if any exist)
|
|
- Follows TDD workflow when tests are specified
|
|
|
|
### Supporting Commands
|
|
|
|
- `/speckit.checklist`: Generate custom checklists (UX, security, performance, etc.)
|
|
- `/speckit.clarify`: Identify underspecified areas and encode answers back into spec
|
|
- `/speckit.analyze`: Cross-artifact consistency analysis (spec/plan/tasks)
|
|
- `/speckit.taskstoissues`: Convert tasks.md into GitHub issues
|
|
- `/speckit.constitution`: Create/update project constitution
|
|
|
|
## File Structure
|
|
|
|
```
|
|
.specify/
|
|
├── memory/
|
|
│ └── constitution.md # Project principles and standards
|
|
├── scripts/bash/
|
|
│ ├── check-prerequisites.sh # Validate workflow state
|
|
│ ├── create-new-feature.sh # Initialize new feature branch
|
|
│ └── update-agent-context.sh # Sync agent prompts with templates
|
|
└── templates/ # Templates for spec, plan, tasks, checklists
|
|
|
|
.github/
|
|
├── agents/ # Agent definitions for each workflow step
|
|
└── prompts/ # Agent prompt templates
|
|
|
|
specs/[###-feature-name]/ # Feature-specific documentation
|
|
├── spec.md # Feature specification
|
|
├── plan.md # Implementation plan
|
|
├── tasks.md # Task list
|
|
├── research.md # Technical research
|
|
├── data-model.md # Data models
|
|
├── quickstart.md # Getting started guide
|
|
├── contracts/ # API contracts
|
|
└── checklists/ # Custom checklists
|
|
```
|
|
|
|
## Constitution (MANDATORY)
|
|
|
|
The project constitution at `.specify/memory/constitution.md` defines **non-negotiable principles**:
|
|
|
|
### Core Principles
|
|
|
|
1. **Modular Architecture**: Discrete modules with clear boundaries, independently testable
|
|
2. **API-First Design**: Document APIs before implementation; follow RESTful principles
|
|
3. **Test-First Development (NON-NEGOTIABLE)**:
|
|
- Write failing tests first
|
|
- Get user approval of test scenarios
|
|
- Implement minimum code to pass
|
|
- Maintain 80%+ code coverage
|
|
4. **Security & Privacy by Default**: Encrypt sensitive data, use OAuth 2.0, implement least privilege
|
|
5. **Observability & Debuggability**: Structured logs, request tracing, performance metrics
|
|
6. **Semantic Versioning**: MAJOR.MINOR.PATCH with migration guides for breaking changes
|
|
7. **Simplicity & YAGNI**: Implement only demonstrated needs; justify complexity
|
|
|
|
### Quality Gates (ALL must pass before merge)
|
|
|
|
- ✅ All tests pass (unit, integration, e2e)
|
|
- ✅ Code coverage ≥ 80%
|
|
- ✅ No critical security vulnerabilities
|
|
- ✅ Documentation updated
|
|
- ✅ Performance regression checks pass
|
|
|
|
### API Standards
|
|
|
|
- Accept/return JSON
|
|
- Use HTTP methods semantically (GET, POST, PUT, DELETE, PATCH)
|
|
- Return appropriate status codes
|
|
- Include rate limiting headers
|
|
- Version endpoints explicitly (`/v1/`, `/v2/`)
|
|
- Document with OpenAPI/Swagger
|
|
|
|
## Helper Scripts
|
|
|
|
### check-prerequisites.sh
|
|
|
|
Validates workflow state before agent execution:
|
|
|
|
```bash
|
|
# JSON output with feature directory and available docs
|
|
.specify/scripts/bash/check-prerequisites.sh --json
|
|
|
|
# Require tasks.md exists (for implementation phase)
|
|
.specify/scripts/bash/check-prerequisites.sh --json --require-tasks --include-tasks
|
|
|
|
# Output just path variables
|
|
.specify/scripts/bash/check-prerequisites.sh --paths-only
|
|
```
|
|
|
|
### create-new-feature.sh
|
|
|
|
Initialize new feature branch and directory structure:
|
|
|
|
```bash
|
|
.specify/scripts/bash/create-new-feature.sh "feature description"
|
|
```
|
|
|
|
## Development Workflow
|
|
|
|
### Starting a New Feature
|
|
|
|
1. Run `.specify/scripts/bash/create-new-feature.sh "feature description"` OR use `/speckit.specify`
|
|
2. Feature branch created: `###-feature-name`
|
|
3. Directory created: `specs/###-feature-name/`
|
|
|
|
### Implementation Flow
|
|
|
|
```
|
|
spec.md (requirements)
|
|
→ plan.md (architecture + tech stack)
|
|
→ tasks.md (implementation tasks)
|
|
→ implementation (code + tests)
|
|
```
|
|
|
|
### Task Organization
|
|
|
|
Tasks in `tasks.md` are organized by:
|
|
- **Phase 1: Setup** - Project initialization
|
|
- **Phase 2: Foundational** - Core infrastructure (blocking for all stories)
|
|
- **Phase 3+: User Stories** - Grouped by story priority (P1, P2, P3...)
|
|
- Tests written FIRST (must fail before implementation)
|
|
- Implementation follows tests
|
|
- Each story independently testable
|
|
|
|
Tasks marked `[P]` can run in parallel (different files, no dependencies).
|
|
|
|
### Checklist Validation
|
|
|
|
If checklists exist in `specs/[feature]/checklists/`:
|
|
- `/speckit.implement` checks completion status before proceeding
|
|
- All items must be checked off `[x]` unless user approves proceeding anyway
|
|
- Common checklist types: UX, security, performance, accessibility
|
|
|
|
## Key Conventions
|
|
|
|
### User Stories
|
|
|
|
- **Prioritized** (P1, P2, P3...) by importance
|
|
- **Independently testable** - each story is a standalone MVP slice
|
|
- Include acceptance scenarios in Given-When-Then format
|
|
- Specify why each priority level was chosen
|
|
|
|
### Test-Driven Development
|
|
|
|
1. Write tests FIRST (contract → integration → unit)
|
|
2. Ensure tests FAIL before implementation
|
|
3. Get user approval on test scenarios
|
|
4. Implement minimum code to pass
|
|
5. Refactor while maintaining green tests
|
|
|
|
### Naming Conventions
|
|
|
|
- Feature branches: `###-feature-name` (auto-numbered)
|
|
- Requirements: `FR-001`, `FR-002`, etc.
|
|
- Tasks: `T001`, `T002`, etc.
|
|
- Checklist items: `CHK001`, `CHK002`, etc.
|
|
- Mark unclear items: `[NEEDS CLARIFICATION: reason]`
|
|
|
|
## Working with Agents
|
|
|
|
### Agent Context
|
|
|
|
Agents load context from:
|
|
- Constitution (`constitution.md`)
|
|
- Templates (`.specify/templates/*.md`)
|
|
- Feature docs (`specs/[feature]/*.md`)
|
|
|
|
When templates change, run:
|
|
```bash
|
|
.specify/scripts/bash/update-agent-context.sh
|
|
```
|
|
|
|
### Agent Auto-Approval
|
|
|
|
VS Code auto-approves scripts in `.specify/scripts/bash/` and `.specify/scripts/powershell/` (see `.vscode/settings.json`).
|
|
|
|
## Important Notes
|
|
|
|
- **No production code exists yet** - implement according to constitution principles
|
|
- **Always check constitution** before making architectural decisions
|
|
- **Write tests first** - TDD is non-negotiable per constitution
|
|
- **Document APIs** before implementing them
|
|
- **Use Specify agents** for feature work rather than ad-hoc implementation
|
|
- **Validate prerequisites** with `check-prerequisites.sh` before running agents
|