Thank you for your interest in contributing to PseudoScribe! This document provides guidelines and instructions for contributing to the project.
PseudoScribe follows the Writer's Block Assistant Development Standards, which are adapted from the Semantic Seed Venture Studio Coding Standards. Key principles include:
- Test-Driven Development (TDD) with a focus on behavior-driven tests
- "No Mocks or Stubs" policy for production code
- Containerized development workflow following the "operate first" approach
- Security and privacy as core design principles
We use GitHub Issues and Projects for backlog management with a BDD focus.
All work items must be classified as:
- Feature: New capabilities (e.g.,
feature/AI-{id}) - Bug: Issues affecting functionality (e.g.,
bug/B-{id}) - Chore: Technical debt, refactoring, dependencies (e.g.,
chore/CH-{id})
main
├── feature/AI-{id} (AI Integration)
├── feature/KM-{id} (Knowledge Management)
├── feature/VSC-{id} (VSCode Extension)
├── bug/B-{id}
└── chore/CH-{id}
-
Start a Story
- Pick from prioritized GitHub Issues
- Create a feature branch with the appropriate naming convention
- Add a WIP commit with test stubs
-
TDD Workflow
Red Tests → Green Tests → Refactor → PR -
Pull Request Requirements
- All tests passing
- Security scan clean
- Documentation updated
- Performance impact assessed
PseudoScribe uses a containerized development workflow that follows the "operate first" principle:
-
Setup the Environment
./scripts/operate_first.py start
-
Test the Environment
./scripts/test_container.py
-
Implement New Features
- Add new endpoints to the appropriate API modules
- Update infrastructure components as needed
- Follow the "No Mocks or Stubs" policy
- Add comprehensive tests
-
Rebuild and Test
./scripts/operate_first.py rebuild ./scripts/test_container.py
- Python: Follow PEP 8 with 4-space indentation
- Naming Conventions: snake_case for functions, PascalCase for classes
- Documentation: Docstrings for all functions, classes, and modules
- Test files:
test_{name}.pyfor unit tests
- Update the README.md with new features
- Add API documentation in the docs/ directory
- Include example usage in tests/
- Update Architecture Decision Records (ADRs) if applicable
- Feature complete per BDD scenarios
- Tests passing (unit, integration, E2E)
- Documentation updated
- Performance metrics met
- Security review passed
- PR approved by at least one reviewer
If you have questions or need assistance, please:
- Check existing documentation in the docs/ directory
- Review open and closed issues in GitHub
- Open a new issue with the "question" label
Thank you for contributing to PseudoScribe!