- File:
src/main/resources/META-INF/persistence.xml - CRITICAL QA DEPLOYMENT RULE: Before any push to GitHub, manually verify persistence.xml uses
${JDBC_DATASOURCE}and${JDBC_AUDIT_DATASOURCE}variables, NOT hardcoded JNDI names likejdbc/coop - DDL GENERATION BLOCKER: Remove hardcoded
eclipselink.application-locationpaths likec:/tmp/from persistence.xml - Manual Process: Always check
git statusbefore pushing to see if persistence.xml has been modified - Pre-Push Checklist:
- Check if persistence.xml is in staged changes:
git status - If modified, verify it contains
${JDBC_DATASOURCE}and${JDBC_AUDIT_DATASOURCE} - If it has hardcoded JNDI names, manually replace them before push
- Never push with hardcoded local JNDI names like
jdbc/cooporjdbc/ruhunuAudit
- Check if persistence.xml is in staged changes:
- Commit Conventions: Details
- Project Board: Workflow
- Wiki Publishing: Guide
- QA Deployment: Bot-Friendly QA Deployment Guide
- VM Management: VM Restart Guide
- Auto-close keywords:
Closes #issueNumber,Fixes #issueNumber - QA Testing Path: Issue should be tested via GitHub Issues -> Projects -> HMIS Development Board
- PR Review Path: Pull Requests -> Files Changed -> Review Required Files -> Approve/Request Changes
- Use
codex --helpto review available commands and capabilities - Prefer using the repository's scripts (e.g.,
./detect-maven.sh test) and keep changes minimal and focused - Always review
git statusandgit diffbefore committing; ensure persistence.xml uses environment variables when pushing - JSF-only changes do not require compilation or tests
- Maven Commands: Environment Setup
- Preferred: Use
./detect-maven.sh testauto-detection script - Fallback: Machine-specific Maven paths
- JSF-Only Changes: When modifying only XHTML/JSF files (no Java changes), compilation/testing is not required
- Guidelines: Complete Reference
- CRITICAL: Never modify existing constructors - only add new ones
- Use direct DTO queries - avoid entity-to-DTO conversion loops
- MANUAL PERSISTENCE.XML VERIFICATION: Before any GitHub push, manually verify persistence.xml uses
${JDBC_DATASOURCE}and${JDBC_AUDIT_DATASOURCE}- NEVER commit hardcoded JNDI datasources - Include issue closing keywords in commit messages
- Update project board status automatically
- Run tests before committing using detect-maven script (only for Java changes)
- Follow DTO patterns to avoid breaking changes
- JSF-only changes do not require compilation or testing
- CRITICAL QA RULE: Before any QA deployment, verify persistence.xml uses
${JDBC_DATASOURCE}and${JDBC_AUDIT_DATASOURCE}variables - DDL GENERATION RULE: Never commit persistence.xml with hardcoded DDL generation paths (
eclipselink.application-location) - BACKWARD COMPATIBILITY RULE: NEVER "fix" intentional typos in entity/controller properties (e.g.,
purcahseRateinstead ofpurchaseRate) - these exist for database backward compatibility - COMPONENT NAMING RULE: NEVER rename composite components (e.g.,
transfeRecieve_detailed) without checking ALL usage across the entire codebase - these are referenced in multiple pages
- Wiki is for end users, not developers
- Focus on how to use features, not how they were implemented
- Write for pharmacy staff, nurses, doctors, administrators - not programmers
- User-centric language: "How to substitute items" not "Implementation of substitute functionality"
- Step-by-step instructions: Clear, numbered procedures
- Practical examples: Real scenarios users encounter
- Actionable guidance: What to do when problems occur
- Overview: What the feature does and why users need it
- When to Use: Specific scenarios and use cases
- How to Use: Step-by-step procedures with screenshots if possible
- Understanding Messages: What system messages mean and how to respond
- Best Practices: Tips for effective use
- Troubleshooting: Common problems and solutions
- Configuration: Admin settings that affect the feature (user impact only)
- FAQ: Common user questions
- X Code snippets, file paths, line numbers
- X Technical implementation details
- X Database schema information
- X Developer debugging information
- X Backend process descriptions
- V User interface elements and navigation
- V Error messages and their meanings
- V Business process workflows
- V Configuration options (from user perspective)
- V Integration with other modules
Only include technical details when specifically requested for developer documentation or when writing for the developer_docs/ directory.
This behavior should persist across all Codex sessions for this project.