Change Management Procedure
| Field | Value |
|---|---|
| Document Owner | Takayuki KIKUCHI (Representative Director & CEO) |
| Effective Date | 2026-05-13 |
| Version | 1.0 |
| Related Policy | Secure Development Policy |
| Repository in Scope | RenderingConsulting/VMS (AuditnQ internal repository) |
1. Purpose & Scope
This procedure establishes the operational rules for managing changes to AuditnQ (internally referred to as VMS) throughout the planning, implementation, review, testing, approval, deployment, and recording phases. It is the operational companion document to the Rendering Consulting Inc. Secure Development Policy.
The following types of changes are within scope:
- Application code changes
- API / backend logic changes
- Frontend UI changes
- Prisma schema, migrations, and data model changes
- GitHub Actions / Azure Static Web Apps CI/CD configuration changes
- Test code, QA documentation, and E2E test asset changes
- Authentication, authorization, and external integration configuration changes
The target system is the AuditnQ application maintained in the GitHub repository RenderingConsulting/VMS.
2. Roles & Responsibilities
CEO (Takayuki KIKUCHI)
The CEO holds final approval authority for material changes, production deployments, emergency changes, and exception handling.
Primary responsibilities:
- Approving changes to be deployed to the production environment
- Determining priority for changes with significant business impact
- Authorizing emergency change execution
- Approving exception handling
- Reviewing change history and approval records as required for audit purposes
Approval Process
Pull Requests that result in deployment to the production environment (main branch) require the CEO's explicit "Approve" action on GitHub. The CEO performs approval according to the following process:
- Receive release request through Slack or other communication channel
- Conduct testing against the PR's Preview environment (Azure Static Web Apps Preview URL)
- Confirm test results are as expected
- Issue "Approve" on the production-bound PR via GitHub
Pull Requests without the CEO's Approve cannot be merged into the main branch. Approval records are retained in the GitHub PR review history.
External Engineers
External engineers are responsible for the design, implementation, testing, PR creation, and review response for changes.
Primary responsibilities:
- Understanding change requirements based on Issues / tickets
- Branch creation, implementation, and commits
- Compliance with coding standards
- Execution of required unit tests, E2E tests, and manual verification
- Pull Request creation
- Response to review feedback
- Support for post-deployment verification
- Maintaining change history in GitHub
3. Change Classification
Changes are classified into two categories. CEO Approve on GitHub is mandatory for all changes deployed to the production environment (main branch), regardless of classification.
Normal Change
Planned, routine changes implemented through the standard process.
Examples:
- New feature additions
- Improvements to existing features
- UI modifications
- Bug fixes
- Test additions
- Documentation updates
- Wording corrections and minor configuration changes
Normal changes originate from a GitHub Issue, are developed in a working branch, undergo Pull Request review and CEO approval, and are merged to the main branch.
Emergency Change
Changes that require an expedited process due to production incidents, critical security issues, or defects that disrupt business operations.
Examples:
- Critical production incidents
- Authentication / authorization defects
- Data integrity corrections
- Emergency response to security vulnerabilities
Emergency changes are implemented in hotfix branches. Review and testing are conducted to the extent possible given the urgency. CEO Approve cannot be skipped for emergency changes. Detailed procedures are defined in §13 Emergency Change Process.
4. Branch Strategy
CI/CD workflows are defined via GitHub Actions for the main and staging branches.
main
The branch corresponding to the production environment. Pushes or Pull Requests to main trigger the Main CI/CD pipeline, which builds and deploys to Azure Static Web Apps. Merges to the main branch require the CEO's approval as defined in §10.
Pre-production testing by the CEO is performed against the Preview environment of the Pull Request (Preview URL generated by the Azure Static Web Apps Pull Request build).
staging
The branch corresponding to the verification environment. Pushes or Pull Requests to staging trigger the Staging CI/CD pipeline.
Working Branches
Work for Normal Changes and Emergency Changes is performed on working branches separate from main / staging, and integrated into main / staging through Pull Requests. Working branch naming is not strictly enforced; any name that allows the work content to be identified is acceptable.
5. Change Initiation
Changes are initiated using GitHub Issues as the official source of change requests. Even when requests are received via Slack, verbal communication, email, or other channels, a corresponding GitHub Issue must be created before work begins, and the request content must be consolidated in the Issue.
The Issue must clarify the following:
- Background / reason
- Target feature
- Scope of impact
- Expected result
- Desired release timing (if any)
- Urgency
For bug reports, reproduction steps, screenshots, error messages, and related logs are added as needed.
All Pull Requests must reference the corresponding GitHub Issue using Closes #<issue-number> or Refs #<issue-number> to clearly link the change to its originating request.
6. Development Standards
Development follows the existing coding guides.
Reference documents:
doc/coding_guide/frontend/README.mddoc/coding_guide/backend/README.mdREADME.md
Key standards include:
- Use TypeScript
- Use React functional components
- Use
react-hook-formfor form management - Use
zodfor validation - Use Zustand for state management as needed
- Follow the tRPC router / usecase / domain structure for APIs
- Do not write business logic directly in routers; separate into usecase / domain
- Do not manually edit Prisma migration files
- Do not hardcode confidential information
- Comply with ESLint / Prettier
Commit messages follow the format below, consistent with the PR Agent configuration:
<type>(<scope>): <subject>
Examples of type:
feat | fix | docs | style | refactor | test | chore
Examples:
fix(auth): handle expired session
docs(qa): add e2e checklist
7. Pull Request Process
Changes are reviewed and approved through Pull Requests.
PRs must include the following information:
- Change summary
- Change reason
- Scope of impact
- Test content
- Related Issue / ticket
- Screenshots or verification results (for UI changes)
- Deployment considerations
The repository includes .github/pull_request_template.md, which defines PR-Agent commands. Examples of available commands:
/ask/describe/review/improve --extended/test/update_changelog
PR Agent is configured to automatically provide descriptions, reviews, and improvement suggestions when PRs are created or updated.
8. Code Review
Code reviews verify the following:
- The implementation is appropriate for the stated change purpose
- The scope of impact is accurately captured
- Authentication / authorization is correctly handled
- Input validation is appropriate
- No confidential information is included
- TypeScript type safety is preserved
- The implementation aligns with existing architecture
- Separation of router / usecase / domain responsibilities is maintained
- UI changes are consistent with existing design and usability
- No performance issues are introduced
- Test coverage is sufficient
- Post-deployment verification methods are clear
PR Agent is configured to focus on security, performance, code quality, React-specific improvements, and test addition suggestions during review.
9. Testing Requirements
Tests are conducted according to the nature of the change.
Unit Tests
When changes affect business logic, utilities, or important branching logic, unit tests are added or updated.
Example command:
npm test
Type Checking
For API / backend changes, TypeScript type checking is performed.
npm run typecheck
Lint
For frontend changes, lint is performed.
npm run lint
Or for error-only verification:
npm run lint:errors
Build
For changes targeting deployment, build verification is performed.
npm run build
E2E Tests
For changes affecting major business flows, Playwright E2E tests or equivalent manual verification is performed.
Reference documents:
doc/qa/e2e/README.mddoc/qa/e2e/run-checklist.mddoc/qa/test-scenario-list.md__test__/README.md
Examples of E2E test scope:
- New project creation
- Vendor response registration
- Periodic audit creation
- Audit target project registration
- Response file upload / download
- Authentication and authorization verification
Preview URL Verification (Mandatory for Production Changes)
For Pull Requests targeting the main branch, the CEO performs pre-production verification against the Preview URL generated by the Azure Static Web Apps Pull Request build.
The verification procedure is as follows:
- CEO accesses the PR's Preview URL
- CEO executes E2E tests relevant to the PR
- CEO records the E2E test results as a comment on the PR
- CEO confirms that no unexplained regression (unintended impact on existing functionality) has occurred
- Upon confirmation, the CEO Approves the PR
The E2E test results and Approve action are retained as audit evidence in the GitHub PR.
10. Approval & Merge
Changes deployed to the production environment require CEO approval before being merged into the main branch.
Branch Protection (via GitHub Repository Rulesets)
The main branch is controlled by the GitHub Repository Ruleset "Auto Review" with the following settings:
| Setting | Value |
|---|---|
| Pull Request required | Required |
| Required approving review count | 1 or more |
| Bypass actors | None (no administrator or CEO bypass permitted) |
Note on Branch Protection Rules vs. Rulesets: The above controls are implemented via GitHub Repository Rulesets rather than the legacy Branch Protection Rules. Functionally equivalent controls (PR required, approval count, no bypass) are enforced. When responding to auditors who ask specifically about "Branch Protection Rules," the accurate response is: "Branch Protection Rules are not configured directly; equivalent controls (PR required, ≥1 approval, no bypass) are enforced via GitHub Repository Rulesets."
Merge Conditions
All of the following conditions must be satisfied before a change can be merged to the main branch:
- A Pull Request has been created
- Change content and scope of impact are documented in the PR body
- A corresponding GitHub Issue is linked
- Required reviews are complete (at least 1 Approve)
- Required testing is complete (unit / type check / lint / build / E2E as applicable)
- CI/CD has succeeded
- The CEO has issued "Approve" on the PR via GitHub for the production deployment
Independence of Approval
The PR author (external engineer) and approver (CEO) are different individuals, ensuring segregation of duties. The Ruleset's bypass actors are empty; the CEO cannot merge without going through the approval process.
11. Deployment Process
Deployment to Azure Static Web Apps is defined via GitHub Actions.
Staging
Pushes or Pull Requests to the staging branch trigger the Staging CI/CD pipeline.
Main steps:
- checkout
- Node.js 22.x setup
npm installnpm run prisma:bundlenpm run build:api:stagingcd api && npm run prepare:deploy- Upload to Azure Static Web Apps
Production
Pushes or Pull Requests to the main branch trigger the Main CI/CD pipeline.
Main steps:
- checkout
- Node.js 22.x setup
npm installnpm run prisma:bundlenpm run build:api:releasecd api && npm run prepare:deploy- Upload to Azure Static Web Apps
Documentation-only changes and certain workflow changes are excluded from deployment via paths-ignore.
12. Post-Deployment Verification
After deployment to production, the CEO performs the following verification.
Functional Verification
The CEO accesses the production environment and confirms:
- The application is accessible
- Login functions correctly
- The target feature operates as expected
- No errors occur on major screens
- No API errors are occurring
- External integrations are unaffected
- No critical console errors are present
- E2E or manual tests are re-executed as needed
Continuous Monitoring (Automated)
The production environment is continuously monitored by the following tooling:
| Target | Tool | Description |
|---|---|---|
| Uptime monitoring | Instatus | Continuous monitoring of the production service availability |
| Activity log | Azure Static Web Apps (visible in Azure Portal) | Records of operations and events on the resource |
| Activity log alerts | Azure Activity Log Alert Rules | Alerts triggered on significant events |
Response to Detected Anomalies
When an anomaly is detected by monitoring or alerts, the CEO responds in accordance with the incident response process. As needed, §13 Emergency Change Process and §14 Rollback Procedure are invoked.
13. Emergency Change Process
Emergency changes are implemented in response to production incidents, critical security issues, or defects that impede business continuity. CEO Approve as defined in §10 cannot be skipped for emergency changes, even when expedited. The scope of review and testing may be adjusted based on urgency, but the approval process itself is maintained.
Procedure
- Confirm the incident or emergency event
- Assess scope of impact and urgency
- Notify the CEO of the emergency change and obtain authorization to prioritize the work
- Create a hotfix working branch
- Implement the minimum necessary fix
- Conduct review and testing to the extent appropriate for the urgency
- Create a Pull Request and document the change, incident details, and scope of impact in the PR body
- CEO performs verification on the Preview URL (scope adjustable based on urgency)
- Obtain CEO Approve, merge to
main, and deploy to production - Conduct post-deployment verification
- Record the post-incident details in the PR body or comments
Post-Incident Recording
The following information must be recorded in the PR body or comments for any emergency change:
- Incident date and time
- Incident description
- Scope of impact
- Root cause
- Implemented fix
- Approver (CEO)
- Deployment date and time
- Post-deployment verification results
- Preventive measures
The GitHub PR Approve record, PR body / comments, and commit history serve as the audit trail.
14. Rollback Procedure
If a critical issue arises after deployment to production, or if a change produces unintended defects, the CEO will determine whether to execute a rollback.
Rollback Method
Rollbacks are executed by creating a Pull Request that uses git revert to undo the problematic change, then merging it to the main branch through the standard change management process. This triggers automatic redeployment of the production environment via the Main CI/CD pipeline.
Force pushes to historical commits and history rewriting are not permitted, as they would compromise the audit trail.
Procedure
- CEO confirms the incident state and scope of impact, and decides to execute the rollback
- Identify the problematic change (PR or commit)
- Create a working branch with
git revertapplied to the target change - Create a Pull Request for the revert
- Record the rollback reason, target change, and execution timing in the PR body
- Obtain CEO Approve (same process as §10)
- Merge to
main, automatically redeploying and reverting production - Perform post-deployment verification
- Record post-incident details in the PR body or comments
Post-Incident Recording
The following information must be recorded in the rollback PR body or comments:
- Rollback reason (incident summary)
- Target change (original PR number or commit hash)
- Execution date and time
- Executor
- Approver (CEO)
- Post-rollback verification results
- Root cause (if identified)
- Preventive measures
Supplemental
The CEO may consult the Activity Log and deployment history of Azure Static Web Apps in the Azure Portal as needed to confirm the state before and after rollback.
15. Documentation & Audit Trail
The audit trail for change management is maintained primarily through records on GitHub.
Recorded items include:
- Issues / tickets
- Pull Requests
- Commit history
- Review comments
- PR Agent review results
- GitHub Actions workflow execution history
- Deployment logs
- Test results
- Screenshots and verification evidence
- QA-related documents
During an audit, the following should be traceable for any given change:
- Who requested the change
- Who implemented the change
- What was changed
- Why it was changed
- Who reviewed the change
- Who approved the change
- When it was deployed to production
- What tests were executed
- Whether any issues occurred after deployment
16. Exceptions
Events that deviate from the standard change management process are treated as exceptions.
Prevention of Exceptions
In this repository, direct commits to the main branch and merging without review are physically blocked by GitHub Repository Rulesets (no bypass actors; see §10). Under normal operation, deviation from this procedure cannot occur.
No Pre-Approval Process
For the reasons above, no pre-approval exception request form or workflow is maintained.
Response to Exception Occurrence
If, in the unlikely event, a deviation from this procedure occurs (operational error, temporary Ruleset modification, etc.), the CEO will perform the following after the fact:
- Confirm the event and assess the scope of impact
- Record the exception in the relevant GitHub Issue or PR
- Consider and implement preventive measures
Post-Incident Recording
Post-incident records include:
- Date and time of exception occurrence
- Description of deviation from the standard process
- Scope of impact
- Reason for the deviation
- Response taken
- Approver (CEO)
- Preventive measures
Audit Trail
Post-incident records are retained in the relevant GitHub Issue or PR and are available for audit review.
17. Version History
| Version | Date | Description | Author | Approver |
|---|---|---|---|---|
| 1.0 | 2026-05-13 | Initial version | Takayuki KIKUCHI | Takayuki KIKUCHI |