Development governance and contribution guidelines for the Lockstride Kickoff plugin project.
- Overview
- Development Principles
- Contribution Workflow
- Quality Standards
- Code Review Process
- Testing Requirements
- Documentation Standards
This document defines how contributors work on the Kickoff plugin project. It establishes principles, processes, and quality standards that all contributors must follow.
Technical Documentation:
- Component Architecture: Comprehensive architecture guide (Skills, Agents, Hooks, MCP, LSP)
- Orchestration & Decisions: Patterns, component selection, and "Skills vs Agents" decision framework
- Principles & Standards: Core architectural principles and open standards
- Kickoff Architecture: Kickoff-specific architectural patterns
- Development Setup: Technical setup and development instructions
- Testing Guide: Comprehensive testing documentation (static, integration, E2E)
Every feature must solve a real problem for startup founders. Before implementing:
- Validate the use case
- Consider the user's context and cognitive load
- Optimize for clarity over cleverness
Maintain consistent patterns across the codebase:
- Follow established file structures
- Use existing patterns before creating new ones
- Document deviations from norms with clear rationale
Respect token budgets:
- Avoid duplication across files
- Single source of truth for all guidance
- Load only what's needed when needed
Handle edge cases thoughtfully:
- Provide clear error messages
- Suggest recovery paths
- Never leave users in ambiguous states
Testing is not optional:
- Write tests before or alongside implementation
- All features require static test coverage
- Major changes require integration/E2E validation
- Check existing issues for duplicates
- Read relevant documentation in docs/
- Review similar existing implementations
- Understand the architectural context
# Create feature branch
git checkout -b feature/your-feature-name
# Make changes following coding standards
# Run tests frequently during development
pnpm test:watch
# After making changes - ALWAYS run pre-commit
pnpm pre-commit
# Before committing (also runs automatically via Husky)
pnpm pre-commitIMPORTANT - Test Execution Rules:
- ALWAYS run
pnpm pre-commitafter changes (linting, formatting, static tests) - NEVER automatically run
pnpm test:integrationorpnpm test:e2eunless explicitly requested - Integration and E2E tests are expensive ($) to run
- Run expensive tests only when specifically asked
Commit Message Format:
<type>: <subject>
<body>
<footer>
Types:
feat: New featurefix: Bug fixdocs: Documentation changestest: Test additions or modificationsrefactor: Code changes that neither fix bugs nor add featureschore: Maintenance tasks
Example:
feat: add alignment checkpoint to writer agent
Implements periodic user confirmation during long document
generation to prevent wasted effort on wrong assumptions.
Closes #42
- Self-Review:
- Run pre-commit checks:
pnpm pre-commit - Review your own diff
- Do NOT run
pnpm test:integrationorpnpm test:e2e(expensive - run only if explicitly required)
- PR Description:
- Link related issues
- Explain what changed and why
- Note any breaking changes
- Include testing performed
- Review Criteria:
- At least one approval required
- All CI checks must pass
- No unresolved comments
- Documentation updated
TypeScript:
- Strict mode enabled
- No
anytypes without explicit justification - Prefer type inference over explicit types where clear
- Use nullish coalescing (
??) over logical OR (||)
Linting:
- All ESLint rules must pass
- No disabled rules without documented reason
- Fix warnings, don't suppress them
Formatting:
- Prettier enforces style
- Single quotes for strings
- 100 character line width
- 2 space indentation
Markdown Files:
- Clear hierarchy with proper heading levels
- Code examples for complex concepts
- Links to related documentation
- Up-to-date modification dates
Comments:
- Explain why, not what
- Document non-obvious decisions
- No commented-out code without explanation
- No change history (use git)
For Document Generation Features:
- Template guidance comments contain document-specific instructions
- Skills contain universal, reusable principles only
- Agents contain workflow routing and methodology coordination
- No duplication of guidance across files
- See Development Guide: Guidance Placement for details
Static Tests:
- Cover all new functionality
- Test edge cases and error conditions
- Use descriptive test names
- Avoid brittle tests (no hardcoded dates/paths)
Integration Tests (content quality):
- Required for major features
- Document expected behavior
- Include reference solutions
- Note cost/time implications
E2E Tests (orchestration via Claude Agent SDK):
- Required for workflow changes
- Validate agent resolution and tool routing
- Short-circuit interactive elements with pre-seeded fixtures
See Testing Guide for comprehensive guidance on all test tiers.
Before Requesting Review:
- Self-review the entire diff
- Run all tests and checks locally
- Write clear PR description
- Link relevant issues/docs
During Review:
- Respond to all comments
- Ask for clarification when needed
- Push new commits (don't force-push during review)
- Mark resolved conversations
After Approval:
- Squash commits if requested
- Ensure CI is green
- Use "Squash and merge" for feature branches
Review Checklist:
- Code follows architectural principles (see Component Architecture for general principles and Kickoff Architecture for project-specific patterns)
- Tests are comprehensive and meaningful
- Documentation is updated
- Guidance placement is correct (for document generation features):
- Document-specific guidance → Template files
- Universal principles → Methodology skills
- Workflow routing → Agent files
- No duplication between locations
- No unnecessary complexity
- Error handling is appropriate
- Performance implications considered
Review Tone:
- Be constructive and specific
- Ask questions rather than making demands
- Acknowledge good work
- Suggest alternatives with rationale
Response Time:
- Initial response within 24 hours
- Full review within 48 hours
- Urgent PRs: communicate in advance
All changes must include appropriate test coverage. See Testing Guide for comprehensive documentation.
All changes must include static tests:
pnpm testWhen to Add Tests:
- New files: Structure and frontmatter validation
- Modified files: Update related tests
- Bug fixes: Add regression test
- Refactors: Ensure existing tests pass
Integration tests (content quality evaluation) required for:
- New document generation workflows
- Changes to agent methodology
- Template structure modifications
- Quality-impacting refactors
pnpm test:integrationE2E tests (SDK-based orchestration) required for:
- Workflow routing changes
- Agent identifier or resolution changes
- Skill invocation or handoff changes
pnpm test:e2eCost Awareness:
- Integration tests cost $0.50-$2.00 per run
- E2E tests cost $0.50-$2.00 per test
- NEVER run these tests unless explicitly requested
- Run manually only when necessary or before major releases
For detailed guidance, see:
- Testing Guide — Complete testing documentation
- When to run each test tier
- Adding new tests
- Troubleshooting test failures
For UI/UX changes:
- Test with local Claude Code CLI
- Verify all interaction paths
- Check error message clarity
- Validate on multiple scenarios
Documentation must be updated for:
- New features or capabilities
- Changed behavior or APIs
- Architectural decisions
- Deprecated functionality
Technical Documentation:
- Component Architecture: AI agent plugin architecture guide
- Skills, agents, hooks, MCP/LSP servers
- Orchestration patterns and decision frameworks
- Complete architecture topic index with focused sub-documents
- Orchestration & Decisions: Patterns and component selection
- Kickoff Architecture: Kickoff-specific architectural patterns
- Development Guide: Setup, testing, and development workflow
- Testing Guide: Comprehensive testing documentation (static, integration, E2E)
- Workflow Patterns: Reusable interaction patterns
User-Facing:
- README.md: User-facing overview and quick start
Structure:
- Table of contents for docs >200 lines
- Clear section hierarchy
- Cross-references to related docs
- Examples for complex concepts
Content:
- Write for the reader's context
- Be specific and actionable
- Update "Last updated" dates
- Remove outdated information
Indexing:
- Link from higher-level docs to details
- Create bidirectional references
- Maintain consistent terminology
- Use anchor links for navigation
Bug Reports:
- Clear description of expected vs actual behavior
- Steps to reproduce
- Environment details
- Relevant logs or screenshots
Feature Requests:
- Problem statement (not just solution)
- Use cases and user impact
- Proposed solution (optional)
- Alternatives considered
bug: Something isn't workingfeature: New functionalitydocs: Documentation improvementstest: Testing infrastructurerefactor: Code quality improvementsquestion: Questions or clarificationsblocked: Cannot proceed without external dependency
P0: Critical - blocks usageP1: High - significant impactP2: Medium - minor impactP3: Low - nice to have
Follow semantic versioning (MAJOR.MINOR.PATCH):
- MAJOR: Breaking changes
- MINOR: New features (backward compatible)
- PATCH: Bug fixes
- All tests pass (static + integration + E2E)
- Documentation updated
- CHANGELOG updated
- Version bumped in package.json
- Git tag created
- Release notes written
- Announce breaking changes in advance
- Document migration paths
- Update examples and tutorials
- Notify in relevant channels
Architecture & Patterns:
- Component Architecture: Comprehensive architecture guide (authoritative index)
- Orchestration & Decisions: Patterns and component selection
- Kickoff Architecture: Project-specific patterns
- Workflow Patterns: Reusable interaction patterns
Development:
- Development Guide: Setup and workflow instructions
- Testing Guide: Complete testing documentation
- GitHub Issues: For bugs and feature requests
- Email: hello@lockstride.ai for private inquiries