Compare commits
246 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| eec8c28fb3 | |||
|
|
a599623ea9 | ||
|
|
0f0a442d74 | ||
|
|
2123fbca77 | ||
|
|
a8cd4bf34c | ||
|
|
02911109ef | ||
|
|
2bad9fec53 | ||
|
|
54ce6f677c | ||
|
|
26a75f5fe3 | ||
|
|
ad7704c1df | ||
|
|
877fee487b | ||
|
|
330ccae82f | ||
|
|
0a5bb296a9 | ||
|
|
437a35bd47 | ||
|
|
612d3655fa | ||
|
|
38cdc5d9d0 | ||
|
|
816124634b | ||
|
|
2b2f3c876b | ||
|
|
20f2624653 | ||
|
|
6509bb5d1b | ||
|
|
e8724c5edc | ||
|
|
2c284bdd49 | ||
|
|
db1e77ceb3 | ||
|
|
df5e69236a | ||
|
|
a3259b042d | ||
|
|
f5e7c2bdfc | ||
|
|
0859ab31ab | ||
|
|
c02219cc92 | ||
|
|
d73b3aee5c | ||
|
|
80eb91e9a1 | ||
|
|
aa6c751007 | ||
|
|
1af786e7c8 | ||
|
|
c46c1976a2 | ||
|
|
3b3ea83ecd | ||
|
|
5980a8081c | ||
|
|
55f64f8050 | ||
|
|
983ae34147 | ||
|
|
4232c0a8ee | ||
|
|
402a8b3105 | ||
|
|
f46bb838ca | ||
|
|
3d0179a119 | ||
|
|
557b33dc73 | ||
|
|
2a1652d0b1 | ||
|
|
f0fdf9b752 | ||
|
|
973efd6412 | ||
|
|
028342c63a | ||
|
|
eb9b907ba3 | ||
|
|
aee0eeef82 | ||
|
|
c977cf6190 | ||
|
|
28bc73bb1a | ||
|
|
19719693b0 | ||
|
|
a243066691 | ||
|
|
741a59c333 | ||
|
|
5642a37c44 | ||
|
|
1726a19cb6 | ||
|
|
40090cda23 | ||
|
|
9945fac150 | ||
|
|
9c416599f8 | ||
|
|
abf88ab4cb | ||
|
|
34903cdd49 | ||
|
|
98c720987d | ||
|
|
1bd7eab223 | ||
|
|
080e17d85a | ||
|
|
a059edf60d | ||
|
|
0a3b64ba5c | ||
|
|
8ee0d0403a | ||
|
|
9dab9186e5 | ||
|
|
c63e4a3d6b | ||
|
|
0e8ff1bc2a | ||
|
|
683967bbfc | ||
|
|
15947616a9 | ||
|
|
813985a903 | ||
|
|
bd48c17aab | ||
|
|
8239a94938 | ||
|
|
fb8d80f6a3 | ||
|
|
8090c12556 | ||
|
|
0e0d42c9fd | ||
|
|
14b48f23b6 | ||
|
|
0c0adf0e5a | ||
|
|
135edd208c | ||
|
|
81a083a634 | ||
|
|
149a2071c3 | ||
|
|
027a1b1f18 | ||
|
|
7adf39a6a0 | ||
|
|
5408ebc95b | ||
|
|
92a90bb8a1 | ||
|
|
6391532b2d | ||
|
|
a161163508 | ||
|
|
5b6bf945d9 | ||
|
|
877a32f180 | ||
|
|
1fe8a79ea3 | ||
|
|
7c8e8c001c | ||
|
|
29c56ab283 | ||
|
|
0391f2b3e3 | ||
|
|
942f585dd1 | ||
|
|
3005db6943 | ||
|
|
f3c33dc81b | ||
|
|
44e2bdec95 | ||
|
|
d71fc0b95f | ||
|
|
f295788ac1 | ||
|
|
c19aa55fd7 | ||
|
|
ea3d93253f | ||
|
|
114dca89c6 | ||
|
|
c7932fa1d9 | ||
|
|
f0ffc27ca7 | ||
|
|
4dfcf70c08 | ||
|
|
71b34061d9 | ||
|
|
368130b07a | ||
|
|
85216ba6e0 | ||
|
|
06aacdee98 | ||
|
|
ef44ae40ec | ||
|
|
26ea2e9da1 | ||
|
|
b90da3740c | ||
|
|
83b361ae57 | ||
|
|
0ae1dc998a | ||
|
|
44f475778f | ||
|
|
7bd3a73bcf | ||
|
|
48f6b7a12b | ||
|
|
122e1fc20b | ||
|
|
850550c5da | ||
|
|
3b4fa064d6 | ||
|
|
78a9231c8a | ||
|
|
e88a4c7982 | ||
|
|
9c056faec7 | ||
|
|
e865fa2b8b | ||
|
|
e1bc648dfc | ||
|
|
9d8d97e556 | ||
|
|
9dc55675ca | ||
|
|
30c9d735aa | ||
|
|
e49ea7061a | ||
|
|
5c50d8b314 | ||
|
|
00ba5b3650 | ||
|
|
af95c1bdb3 | ||
|
|
01e3d910f1 | ||
|
|
1230694f55 | ||
|
|
77f15a225f | ||
|
|
d75abb80d1 | ||
|
|
42bc897610 | ||
|
|
b15f7c3fbc | ||
|
|
bb99dacecd | ||
|
|
4b925418f2 | ||
|
|
9e82efd23a | ||
|
|
8f7c10440c | ||
|
|
a439e1d467 | ||
|
|
718a957ad9 | ||
|
|
059ff9c6b4 | ||
|
|
062b86642d | ||
|
|
a5724aecf9 | ||
|
|
53dccbe82b | ||
|
|
8d6645415a | ||
|
|
4cfcc9aa02 | ||
|
|
5d384e4afa | ||
|
|
5bf25fdebc | ||
|
|
253d1ddd29 | ||
|
|
5eab41b559 | ||
|
|
a076bb3265 | ||
|
|
9c85d9e737 | ||
|
|
1de4ce6729 | ||
|
|
8e0f88e8bd | ||
|
|
36460a884e | ||
|
|
585ae9494d | ||
|
|
ed9d6fe5d8 | ||
|
|
f0147b1315 | ||
|
|
615e5a95f5 | ||
|
|
5b85d18217 | ||
|
|
f05c24dd66 | ||
|
|
fd11279aa3 | ||
|
|
59282952b0 | ||
|
|
8742c76d52 | ||
|
|
9c0193e812 | ||
|
|
64465e1cd9 | ||
|
|
580e20d573 | ||
|
|
bb496daae3 | ||
|
|
4cd568b0e5 | ||
|
|
efd70cd651 | ||
|
|
3d4a63b515 | ||
|
|
42cec9e8c3 | ||
|
|
73565e0e0d | ||
|
|
6dddc5db43 | ||
|
|
ef90d1c0d7 | ||
|
|
0354f5cecf | ||
|
|
2d923246a9 | ||
|
|
241c0d1b35 | ||
|
|
a9767baa69 | ||
|
|
79f0080c80 | ||
|
|
bfa6fc0920 | ||
|
|
a5c6eb95c6 | ||
|
|
47d306b44b | ||
|
|
5e73ba7bd0 | ||
|
|
32a30434b1 | ||
|
|
138426311f | ||
|
|
a8ef9dd6ce | ||
|
|
b48794df14 | ||
|
|
85a80568b2 | ||
|
|
fc0e31df56 | ||
|
|
cb4ae8367c | ||
|
|
de020d9901 | ||
|
|
0634357ee9 | ||
|
|
9753a13001 | ||
|
|
d0deef1537 | ||
|
|
4603b57224 | ||
|
|
bb64ca64e2 | ||
|
|
ce4a9c5626 | ||
|
|
b45861090d | ||
|
|
4a3f655a49 | ||
|
|
29e069ac94 | ||
|
|
625fcf8e5c | ||
|
|
2b8ed06c3c | ||
|
|
34d73ad6ed | ||
|
|
e06a8cb676 | ||
|
|
5ba8cd60c8 | ||
|
|
29985714a3 | ||
|
|
64c9d7adbe | ||
|
|
8d56760c64 | ||
|
|
087ae9cc0d | ||
|
|
35b003ae5e | ||
|
|
cab3c68508 | ||
|
|
b6558d4165 | ||
|
|
64cbe5a74d | ||
|
|
1d3e60b4f8 | ||
|
|
07e6ad2d09 | ||
|
|
543388b5a4 | ||
|
|
e2774cccf7 | ||
|
|
bf4dd17792 | ||
|
|
4abc29406f | ||
|
|
b75f92a88b | ||
|
|
237a3a4d80 | ||
|
|
3e926298f2 | ||
|
|
e84df69cb6 | ||
|
|
0a43a76a4a | ||
|
|
c852838644 | ||
|
|
9740ddb813 | ||
|
|
5abd01f61c | ||
|
|
e40a241d62 | ||
|
|
a72e587d29 | ||
|
|
976ae0272b | ||
|
|
ccd3081d09 | ||
|
|
844c800cd9 | ||
|
|
e6c4e46dd8 | ||
|
|
f40fca844f | ||
|
|
c7daa4ac46 | ||
|
|
0a4ac41242 | ||
|
|
3336aae2a0 | ||
|
|
1fe69c2a15 | ||
|
|
846eedeab0 | ||
|
|
37c7c4aeb8 |
0
.docker/README.md
Normal file → Executable file
0
.docker/README.md
Normal file → Executable file
0
.docker/compose/README.md
Normal file → Executable file
0
.docker/compose/README.md
Normal file → Executable file
0
.docker/compose/docker-compose.dev.yml
Normal file → Executable file
0
.docker/compose/docker-compose.dev.yml
Normal file → Executable file
0
.docker/compose/docker-compose.e2e.cerberus-disabled.override.yml
Normal file → Executable file
0
.docker/compose/docker-compose.e2e.cerberus-disabled.override.yml
Normal file → Executable file
0
.docker/compose/docker-compose.local.yml
Normal file → Executable file
0
.docker/compose/docker-compose.local.yml
Normal file → Executable file
0
.docker/compose/docker-compose.override.example.yml
Normal file → Executable file
0
.docker/compose/docker-compose.override.example.yml
Normal file → Executable file
0
.docker/compose/docker-compose.playwright-ci.yml
Normal file → Executable file
0
.docker/compose/docker-compose.playwright-ci.yml
Normal file → Executable file
0
.docker/compose/docker-compose.playwright-local.yml
Normal file → Executable file
0
.docker/compose/docker-compose.playwright-local.yml
Normal file → Executable file
0
.docker/compose/docker-compose.remote.yml
Normal file → Executable file
0
.docker/compose/docker-compose.remote.yml
Normal file → Executable file
0
.docker/compose/docker-compose.yml
Normal file → Executable file
0
.docker/compose/docker-compose.yml
Normal file → Executable file
@@ -303,6 +303,19 @@ ACQUIS_EOF
|
|||||||
# Also handle case where it might be without trailing slash
|
# Also handle case where it might be without trailing slash
|
||||||
sed -i 's|log_dir: /var/log$|log_dir: /var/log/crowdsec|g' "$CS_CONFIG_DIR/config.yaml"
|
sed -i 's|log_dir: /var/log$|log_dir: /var/log/crowdsec|g' "$CS_CONFIG_DIR/config.yaml"
|
||||||
|
|
||||||
|
# Redirect CrowdSec LAPI database to persistent volume
|
||||||
|
# Default path /var/lib/crowdsec/data/crowdsec.db is ephemeral (not volume-mounted),
|
||||||
|
# so it is destroyed on every container rebuild. The bouncer API key (stored on the
|
||||||
|
# persistent volume at /app/data/crowdsec/) survives rebuilds but the LAPI database
|
||||||
|
# that validates it does not — causing perpetual key rejection.
|
||||||
|
# Redirecting db_path to the volume-mounted CS_DATA_DIR fixes this.
|
||||||
|
sed -i "s|db_path: /var/lib/crowdsec/data/crowdsec.db|db_path: ${CS_DATA_DIR}/crowdsec.db|g" "$CS_CONFIG_DIR/config.yaml"
|
||||||
|
if grep -q "db_path:.*${CS_DATA_DIR}" "$CS_CONFIG_DIR/config.yaml"; then
|
||||||
|
echo "✓ CrowdSec LAPI database redirected to persistent volume: ${CS_DATA_DIR}/crowdsec.db"
|
||||||
|
else
|
||||||
|
echo "⚠️ WARNING: Could not verify LAPI db_path redirect — bouncer keys may not survive rebuilds"
|
||||||
|
fi
|
||||||
|
|
||||||
# Verify LAPI configuration was applied correctly
|
# Verify LAPI configuration was applied correctly
|
||||||
if grep -q "listen_uri:.*:8085" "$CS_CONFIG_DIR/config.yaml"; then
|
if grep -q "listen_uri:.*:8085" "$CS_CONFIG_DIR/config.yaml"; then
|
||||||
echo "✓ CrowdSec LAPI configured for port 8085"
|
echo "✓ CrowdSec LAPI configured for port 8085"
|
||||||
@@ -310,10 +323,11 @@ ACQUIS_EOF
|
|||||||
echo "✗ WARNING: LAPI port configuration may be incorrect"
|
echo "✗ WARNING: LAPI port configuration may be incorrect"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Update hub index to ensure CrowdSec can start
|
# Always refresh hub index on startup (stale index causes hash mismatch errors on collection install)
|
||||||
if [ ! -f "/etc/crowdsec/hub/.index.json" ]; then
|
|
||||||
echo "Updating CrowdSec hub index..."
|
echo "Updating CrowdSec hub index..."
|
||||||
timeout 60s cscli hub update 2>/dev/null || echo "⚠️ Hub update timed out or failed, continuing..."
|
if ! timeout 60s cscli hub update 2>&1; then
|
||||||
|
echo "⚠️ Hub index update failed (network issue?). Collections may fail to install."
|
||||||
|
echo " CrowdSec will still start with whatever index is cached."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Ensure local machine is registered (auto-heal for volume/config mismatch)
|
# Ensure local machine is registered (auto-heal for volume/config mismatch)
|
||||||
@@ -321,12 +335,11 @@ ACQUIS_EOF
|
|||||||
echo "Registering local machine..."
|
echo "Registering local machine..."
|
||||||
cscli machines add -a --force 2>/dev/null || echo "Warning: Machine registration may have failed"
|
cscli machines add -a --force 2>/dev/null || echo "Warning: Machine registration may have failed"
|
||||||
|
|
||||||
# Install hub items (parsers, scenarios, collections) if local mode enabled
|
# Always ensure required collections are present (idempotent — already-installed items are skipped).
|
||||||
if [ "$SECURITY_CROWDSEC_MODE" = "local" ]; then
|
# Collections are just config files with zero runtime cost when CrowdSec is disabled.
|
||||||
echo "Installing CrowdSec hub items..."
|
echo "Ensuring CrowdSec hub items are installed..."
|
||||||
if [ -x /usr/local/bin/install_hub_items.sh ]; then
|
if [ -x /usr/local/bin/install_hub_items.sh ]; then
|
||||||
/usr/local/bin/install_hub_items.sh 2>/dev/null || echo "Warning: Some hub items may not have installed"
|
/usr/local/bin/install_hub_items.sh || echo "⚠️ Some hub items may not have installed. CrowdSec can still start."
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Fix ownership AFTER cscli commands (they run as root and create root-owned files)
|
# Fix ownership AFTER cscli commands (they run as root and create root-owned files)
|
||||||
|
|||||||
0
.dockerignore
Normal file → Executable file
0
.dockerignore
Normal file → Executable file
0
.env.example
Normal file → Executable file
0
.env.example
Normal file → Executable file
0
.gitattributes
vendored
Normal file → Executable file
0
.gitattributes
vendored
Normal file → Executable file
0
.github/FUNDING.yml
vendored
Normal file → Executable file
0
.github/FUNDING.yml
vendored
Normal file → Executable file
0
.github/ISSUE_TEMPLATE/alpha-feature.yml
vendored
Normal file → Executable file
0
.github/ISSUE_TEMPLATE/alpha-feature.yml
vendored
Normal file → Executable file
0
.github/ISSUE_TEMPLATE/beta-monitoring-feature.yml
vendored
Normal file → Executable file
0
.github/ISSUE_TEMPLATE/beta-monitoring-feature.yml
vendored
Normal file → Executable file
0
.github/ISSUE_TEMPLATE/beta-security-feature.yml
vendored
Normal file → Executable file
0
.github/ISSUE_TEMPLATE/beta-security-feature.yml
vendored
Normal file → Executable file
0
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file → Executable file
0
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file → Executable file
0
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file → Executable file
0
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file → Executable file
0
.github/ISSUE_TEMPLATE/general-feature.yml
vendored
Normal file → Executable file
0
.github/ISSUE_TEMPLATE/general-feature.yml
vendored
Normal file → Executable file
0
.github/PULL_REQUEST_TEMPLATE/history-rewrite.md
vendored
Normal file → Executable file
0
.github/PULL_REQUEST_TEMPLATE/history-rewrite.md
vendored
Normal file → Executable file
0
.github/agents/Backend_Dev.agent.md
vendored
Normal file → Executable file
0
.github/agents/Backend_Dev.agent.md
vendored
Normal file → Executable file
0
.github/agents/DevOps.agent.md
vendored
Normal file → Executable file
0
.github/agents/DevOps.agent.md
vendored
Normal file → Executable file
0
.github/agents/Doc_Writer.agent.md
vendored
Normal file → Executable file
0
.github/agents/Doc_Writer.agent.md
vendored
Normal file → Executable file
0
.github/agents/Frontend_Dev.agent.md
vendored
Normal file → Executable file
0
.github/agents/Frontend_Dev.agent.md
vendored
Normal file → Executable file
34
.github/agents/Management.agent.md
vendored
Normal file → Executable file
34
.github/agents/Management.agent.md
vendored
Normal file → Executable file
@@ -43,7 +43,7 @@ You are "lazy" in the smartest way possible. You never do what a subordinate can
|
|||||||
- **Identify Goal**: Understand the user's request.
|
- **Identify Goal**: Understand the user's request.
|
||||||
- **STOP**: Do not look at the code. Do not run `list_dir`. No code is to be changed or implemented until there is a fundamentally sound plan of action that has been approved by the user.
|
- **STOP**: Do not look at the code. Do not run `list_dir`. No code is to be changed or implemented until there is a fundamentally sound plan of action that has been approved by the user.
|
||||||
- **Action**: Immediately call `Planning` subagent.
|
- **Action**: Immediately call `Planning` subagent.
|
||||||
- *Prompt*: "Research the necessary files for '{user_request}' and write a comprehensive plan detailing as many specifics as possible to `docs/plans/current_spec.md`. Be an artist with directions and discriptions. Include file names, function names, and component names wherever possible. Break the plan into phases based on the least amount of requests. Include a Commit Slicing Strategy section that decides whether to split work into multiple PRs and, when split, defines PR-1/PR-2/PR-3 scope, dependencies, and acceptance criteria. Review and suggest updaetes to `.gitignore`, `codecov.yml`, `.dockerignore`, and `Dockerfile` if necessary. Return only when the plan is complete."
|
- *Prompt*: "Research the necessary files for '{user_request}' and write a comprehensive plan detailing as many specifics as possible to `docs/plans/current_spec.md`. Be an artist with directions and discriptions. Include file names, function names, and component names wherever possible. Break the plan into phases based on the least amount of requests. Include a Commit Slicing Strategy section that organizes work into logical commits within a single PR — one feature = one PR, with ordered commits (Commit 1, Commit 2, …) each defining scope, files, dependencies, and validation gates. Review and suggest updaetes to `.gitignore`, `codecov.yml`, `.dockerignore`, and `Dockerfile` if necessary. Return only when the plan is complete."
|
||||||
- **Task Specifics**:
|
- **Task Specifics**:
|
||||||
- If the task is to just run tests or audits, there is no need for a plan. Directly call `QA_Security` to perform the tests and write the report. If issues are found, return to `Planning` for a remediation plan and delegate the fixes to the corresponding subagents.
|
- If the task is to just run tests or audits, there is no need for a plan. Directly call `QA_Security` to perform the tests and write the report. If issues are found, return to `Planning` for a remediation plan and delegate the fixes to the corresponding subagents.
|
||||||
|
|
||||||
@@ -59,15 +59,13 @@ You are "lazy" in the smartest way possible. You never do what a subordinate can
|
|||||||
- **Ask**: "Plan created. Shall I authorize the construction?"
|
- **Ask**: "Plan created. Shall I authorize the construction?"
|
||||||
|
|
||||||
4. **Phase 4: Execution (Waterfall)**:
|
4. **Phase 4: Execution (Waterfall)**:
|
||||||
- **Single-PR or Multi-PR Decision**: Read the Commit Slicing Strategy in `docs/plans/current_spec.md`.
|
- **Read Commit Slicing Strategy**: Read the Commit Slicing Strategy in `docs/plans/current_spec.md` to understand the ordered commits.
|
||||||
- **If single PR**:
|
- **Single PR, Multiple Commits**: All work ships as one PR. Each commit maps to a phase in the plan.
|
||||||
- **Backend**: Call `Backend_Dev` with the plan file.
|
- **Backend**: Call `Backend_Dev` with the plan file.
|
||||||
- **Frontend**: Call `Frontend_Dev` with the plan file.
|
- **Frontend**: Call `Frontend_Dev` with the plan file.
|
||||||
- **If multi-PR**:
|
- Execute commits in dependency order. Each commit must pass its validation gates before the next commit begins.
|
||||||
- Execute in PR slices, one slice at a time, in dependency order.
|
- The PR is merged only when all commits are complete and all DoD gates pass.
|
||||||
- Require each slice to pass review + QA gates before starting the next slice.
|
- **MANDATORY**: Implementation agents must perform linting and type checks locally before declaring their commit "DONE". This is a critical step that must not be skipped to avoid broken commits and security issues.
|
||||||
- Keep every slice deployable and independently testable.
|
|
||||||
- **MANDATORY**: Implementation agents must perform linting and type checks locally before declaring their slice "DONE". This is a critical step that must not be skipped to avoid broken commits and security issues.
|
|
||||||
|
|
||||||
5. **Phase 5: Review**:
|
5. **Phase 5: Review**:
|
||||||
- **Supervisor**: Call `Supervisor` to review the implementation against the plan. Provide feedback and ensure alignment with best practices.
|
- **Supervisor**: Call `Supervisor` to review the implementation against the plan. Provide feedback and ensure alignment with best practices.
|
||||||
@@ -80,7 +78,7 @@ You are "lazy" in the smartest way possible. You never do what a subordinate can
|
|||||||
- **Docs**: Call `Docs_Writer`.
|
- **Docs**: Call `Docs_Writer`.
|
||||||
- **Manual Testing**: create a new test plan in `docs/issues/*.md` for tracking manual testing focused on finding potential bugs of the implemented features.
|
- **Manual Testing**: create a new test plan in `docs/issues/*.md` for tracking manual testing focused on finding potential bugs of the implemented features.
|
||||||
- **Final Report**: Summarize the successful subagent runs.
|
- **Final Report**: Summarize the successful subagent runs.
|
||||||
- **PR Roadmap**: If split mode was used, include a concise roadmap of completed and remaining PR slices.
|
- **Commit Roadmap**: Include a concise summary of completed and remaining commits within the PR.
|
||||||
|
|
||||||
**Mandatory Commit Message**: When you reach a stopping point, provide a copy and paste code block commit message at the END of the response on format laid out in `.github/instructions/commit-message.instructions.md`
|
**Mandatory Commit Message**: When you reach a stopping point, provide a copy and paste code block commit message at the END of the response on format laid out in `.github/instructions/commit-message.instructions.md`
|
||||||
- **STRICT RULES**:
|
- **STRICT RULES**:
|
||||||
@@ -167,23 +165,27 @@ The task is not complete until ALL of the following pass with zero issues:
|
|||||||
- **Base URL**: Uses `PLAYWRIGHT_BASE_URL` or default from `playwright.config.js`
|
- **Base URL**: Uses `PLAYWRIGHT_BASE_URL` or default from `playwright.config.js`
|
||||||
- All E2E tests must pass before proceeding to unit tests
|
- All E2E tests must pass before proceeding to unit tests
|
||||||
|
|
||||||
2. **Local Patch Coverage Preflight (MANDATORY - Before Unit/Coverage Tests)**:
|
2. **Coverage Tests (MANDATORY - Verify Explicitly)**:
|
||||||
- Ensure the local patch report is run first via VS Code task `Test: Local Patch Report` or `bash scripts/local-patch-report.sh`.
|
|
||||||
- Verify both artifacts exist: `test-results/local-patch-report.md` and `test-results/local-patch-report.json`.
|
|
||||||
- Use this report to identify changed files needing coverage before running backend/frontend coverage suites.
|
|
||||||
|
|
||||||
3. **Coverage Tests (MANDATORY - Verify Explicitly)**:
|
|
||||||
- **Backend**: Ensure `Backend_Dev` ran VS Code task "Test: Backend with Coverage" or `scripts/go-test-coverage.sh`
|
- **Backend**: Ensure `Backend_Dev` ran VS Code task "Test: Backend with Coverage" or `scripts/go-test-coverage.sh`
|
||||||
- **Frontend**: Ensure `Frontend_Dev` ran VS Code task "Test: Frontend with Coverage" or `scripts/frontend-test-coverage.sh`
|
- **Frontend**: Ensure `Frontend_Dev` ran VS Code task "Test: Frontend with Coverage" or `scripts/frontend-test-coverage.sh`
|
||||||
- **Why**: These are in manual stage of pre-commit for performance. Subagents MUST run them via VS Code tasks or scripts.
|
- **Why**: These are in manual stage of pre-commit for performance. Subagents MUST run them via VS Code tasks or scripts.
|
||||||
- Minimum coverage: 85% for both backend and frontend.
|
- Minimum coverage: 85% for both backend and frontend.
|
||||||
- All tests must pass with zero failures.
|
- All tests must pass with zero failures.
|
||||||
|
- **Outputs**: `backend/coverage.txt` and `frontend/coverage/lcov.info` — these are required inputs for step 3.
|
||||||
|
|
||||||
|
3. **Local Patch Coverage Report (MANDATORY - After Coverage Tests)**:
|
||||||
|
- **Purpose**: Identify uncovered lines in files modified by this task so missing tests are written before declaring Done. This is the bridge between "overall coverage is fine" and "the actual lines I changed are tested."
|
||||||
|
- **Prerequisites**: `backend/coverage.txt` and `frontend/coverage/lcov.info` must exist (generated by step 2). If missing, run coverage tests first.
|
||||||
|
- **Run**: VS Code task `Test: Local Patch Report` or `bash scripts/local-patch-report.sh`.
|
||||||
|
- **Verify artifacts**: Both `test-results/local-patch-report.md` and `test-results/local-patch-report.json` must exist with non-empty results.
|
||||||
|
- **Act on findings**: If patch coverage for any changed file is below **90%**, delegate to the responsible agent (`Backend_Dev` or `Frontend_Dev`) to add targeted tests covering the uncovered lines. Re-run coverage (step 2) and this report until the threshold is met.
|
||||||
|
- **Blocking gate**: 90% overall patch coverage. Do not proceed to pre-commit or security scans until resolved or explicitly waived by the user.
|
||||||
|
|
||||||
4. **Type Safety (Frontend)**:
|
4. **Type Safety (Frontend)**:
|
||||||
- Ensure `Frontend_Dev` ran VS Code task "Lint: TypeScript Check" or `npm run type-check`
|
- Ensure `Frontend_Dev` ran VS Code task "Lint: TypeScript Check" or `npm run type-check`
|
||||||
- **Why**: This check is in manual stage of pre-commit for performance. Subagents MUST run it explicitly.
|
- **Why**: This check is in manual stage of pre-commit for performance. Subagents MUST run it explicitly.
|
||||||
|
|
||||||
5. **Pre-commit Hooks**: Ensure `QA_Security` ran `pre-commit run --all-files` (fast hooks only; coverage was verified in step 3)
|
5. **Pre-commit Hooks**: Ensure `QA_Security` ran `pre-commit run --all-files` (fast hooks only; coverage was verified in step 2)
|
||||||
|
|
||||||
6. **Security Scans**: Ensure `QA_Security` ran the following with zero Critical or High severity issues:
|
6. **Security Scans**: Ensure `QA_Security` ran the following with zero Critical or High severity issues:
|
||||||
- **Trivy Filesystem Scan**: Fast scan of source code and dependencies
|
- **Trivy Filesystem Scan**: Fast scan of source code and dependencies
|
||||||
|
|||||||
8
.github/agents/Planning.agent.md
vendored
Normal file → Executable file
8
.github/agents/Planning.agent.md
vendored
Normal file → Executable file
@@ -38,7 +38,7 @@ You are a PRINCIPAL ARCHITECT responsible for technical planning and system desi
|
|||||||
- Specify database schema changes
|
- Specify database schema changes
|
||||||
- Document component interactions and data flow
|
- Document component interactions and data flow
|
||||||
- Identify potential risks and mitigation strategies
|
- Identify potential risks and mitigation strategies
|
||||||
- Determine PR sizing and whether to split the work into multiple PRs for safer and faster review
|
- Determine commit sizing and how to organize work into logical commits within a single PR for safer and faster review
|
||||||
|
|
||||||
3. **Documentation**:
|
3. **Documentation**:
|
||||||
- Write plan to `docs/plans/current_spec.md`
|
- Write plan to `docs/plans/current_spec.md`
|
||||||
@@ -46,10 +46,10 @@ You are a PRINCIPAL ARCHITECT responsible for technical planning and system desi
|
|||||||
- Break down into implementable tasks using examples, diagrams, and tables
|
- Break down into implementable tasks using examples, diagrams, and tables
|
||||||
- Estimate complexity for each component
|
- Estimate complexity for each component
|
||||||
- Add a **Commit Slicing Strategy** section with:
|
- Add a **Commit Slicing Strategy** section with:
|
||||||
- Decision: single PR or multiple PRs
|
- Decision: single PR with ordered logical commits (one feature = one PR)
|
||||||
- Trigger reasons (scope, risk, cross-domain changes, review size)
|
- Trigger reasons (scope, risk, cross-domain changes, review size)
|
||||||
- Ordered PR slices (`PR-1`, `PR-2`, ...), each with scope, files, dependencies, and validation gates
|
- Ordered commits (`Commit 1`, `Commit 2`, ...), each with scope, files, dependencies, and validation gates
|
||||||
- Rollback and contingency notes per slice
|
- Rollback and contingency notes for the PR as a whole
|
||||||
|
|
||||||
4. **Handoff**:
|
4. **Handoff**:
|
||||||
- Once plan is approved, delegate to `Supervisor` agent for review.
|
- Once plan is approved, delegate to `Supervisor` agent for review.
|
||||||
|
|||||||
0
.github/agents/Playwright_Dev.agent.md
vendored
Normal file → Executable file
0
.github/agents/Playwright_Dev.agent.md
vendored
Normal file → Executable file
0
.github/agents/QA_Security.agent.md
vendored
Normal file → Executable file
0
.github/agents/QA_Security.agent.md
vendored
Normal file → Executable file
0
.github/agents/Supervisor.agent.md
vendored
Normal file → Executable file
0
.github/agents/Supervisor.agent.md
vendored
Normal file → Executable file
0
.github/codeql-custom-model.yml
vendored
Normal file → Executable file
0
.github/codeql-custom-model.yml
vendored
Normal file → Executable file
0
.github/codeql/codeql-config.yml
vendored
Normal file → Executable file
0
.github/codeql/codeql-config.yml
vendored
Normal file → Executable file
0
.github/instructions/ARCHITECTURE.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/ARCHITECTURE.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/a11y.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/a11y.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/agent-skills.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/agent-skills.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/agents.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/agents.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/code-review-generic.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/code-review-generic.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/commit-message.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/commit-message.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/containerization-docker-best-practices.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/containerization-docker-best-practices.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/copilot-instructions.md
vendored
Normal file → Executable file
0
.github/instructions/copilot-instructions.md
vendored
Normal file → Executable file
0
.github/instructions/documentation-coding-best-practices.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/documentation-coding-best-practices.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/features.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/features.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/github-actions-ci-cd-best-practices.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/github-actions-ci-cd-best-practices.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/go.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/go.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/html-css-style-color-guide.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/html-css-style-color-guide.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/instructions.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/instructions.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/makefile.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/makefile.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/markdown.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/markdown.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/nodejs-javascript-vitest.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/nodejs-javascript-vitest.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/object-calisthenics.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/object-calisthenics.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/pcf-react-platform-libraries.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/pcf-react-platform-libraries.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/performance-optimization.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/performance-optimization.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/playwright-typescript.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/playwright-typescript.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/prompt.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/prompt.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/reactjs.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/reactjs.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/security-and-owasp.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/security-and-owasp.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/security.md.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/security.md.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/self-explanatory-code-commenting.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/self-explanatory-code-commenting.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/shell.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/shell.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/spec-driven-workflow-v1.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/spec-driven-workflow-v1.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/sql-sp-generation.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/sql-sp-generation.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/structure.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/structure.instructions.md
vendored
Normal file → Executable file
18
.github/instructions/subagent.instructions.md
vendored
Normal file → Executable file
18
.github/instructions/subagent.instructions.md
vendored
Normal file → Executable file
@@ -23,21 +23,21 @@ runSubagent({
|
|||||||
|
|
||||||
- Validate: `plan_file` exists and contains a `Handoff Contract` JSON.
|
- Validate: `plan_file` exists and contains a `Handoff Contract` JSON.
|
||||||
- Kickoff: call `Planning` to create the plan if not present.
|
- Kickoff: call `Planning` to create the plan if not present.
|
||||||
- Decide: check if work should be split into multiple PRs (size, risk, cross-domain impact).
|
- Decide: check how to organize work into logical commits within a single PR (size, risk, cross-domain impact).
|
||||||
- Run: execute `Backend Dev` then `Frontend Dev` sequentially.
|
- Run: execute `Backend Dev` then `Frontend Dev` sequentially.
|
||||||
- Parallel: run `QA and Security`, `DevOps` and `Doc Writer` in parallel for CI / QA checks and documentation.
|
- Parallel: run `QA and Security`, `DevOps` and `Doc Writer` in parallel for CI / QA checks and documentation.
|
||||||
- Return: a JSON summary with `subagent_results`, `overall_status`, and aggregated artifacts.
|
- Return: a JSON summary with `subagent_results`, `overall_status`, and aggregated artifacts.
|
||||||
|
|
||||||
2.1) Multi-Commit Slicing Protocol
|
2.1) Multi-Commit Slicing Protocol
|
||||||
|
|
||||||
- If a task is large or high-risk, split into PR slices and execute in order.
|
- All work for a single feature ships as one PR with ordered logical commits.
|
||||||
- Each slice must have:
|
- Each commit must have:
|
||||||
- Scope boundary (what is included/excluded)
|
- Scope boundary (what is included/excluded)
|
||||||
- Dependency on previous slices
|
- Dependency on previous commits
|
||||||
- Validation gates (tests/scans required for that slice)
|
- Validation gates (tests/scans required for that commit)
|
||||||
- Explicit rollback notes
|
- Explicit rollback notes for the PR as a whole
|
||||||
- Do not start the next slice until the current slice is complete and verified.
|
- Do not start the next commit until the current commit is complete and verified.
|
||||||
- Keep each slice independently reviewable and deployable.
|
- Keep each commit independently reviewable within the PR.
|
||||||
|
|
||||||
3) Return Contract that all subagents must return
|
3) Return Contract that all subagents must return
|
||||||
|
|
||||||
@@ -55,7 +55,7 @@ runSubagent({
|
|||||||
|
|
||||||
- On a subagent failure, the Management agent must capture `tests.output` and decide to retry (1 retry maximum), or request a revert/rollback.
|
- On a subagent failure, the Management agent must capture `tests.output` and decide to retry (1 retry maximum), or request a revert/rollback.
|
||||||
- Clearly mark the `status` as `failed`, and include `errors` and `failing_tests` in the `summary`.
|
- Clearly mark the `status` as `failed`, and include `errors` and `failing_tests` in the `summary`.
|
||||||
- For multi-PR execution, mark failed slice as blocked and stop downstream slices until resolved.
|
- For multi-commit execution, mark failed commit as blocked and stop downstream commits until resolved.
|
||||||
|
|
||||||
5) Example: Run a full Feature Implementation
|
5) Example: Run a full Feature Implementation
|
||||||
|
|
||||||
|
|||||||
0
.github/instructions/taming-copilot.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/taming-copilot.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/tanstack-start-shadcn-tailwind.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/tanstack-start-shadcn-tailwind.instructions.md
vendored
Normal file → Executable file
21
.github/instructions/testing.instructions.md
vendored
Normal file → Executable file
21
.github/instructions/testing.instructions.md
vendored
Normal file → Executable file
@@ -12,9 +12,19 @@ instruction files take precedence over agent files and operator documentation.
|
|||||||
|
|
||||||
**MANDATORY**: Before running unit tests, verify the application UI/UX functions correctly end-to-end.
|
**MANDATORY**: Before running unit tests, verify the application UI/UX functions correctly end-to-end.
|
||||||
|
|
||||||
## 0.5 Local Patch Coverage Preflight (Before Unit Tests)
|
## 0.5 Local Patch Coverage Report (After Coverage Tests)
|
||||||
|
|
||||||
**MANDATORY**: After E2E and before backend/frontend unit coverage runs, generate a local patch report so uncovered changed lines are visible early.
|
**MANDATORY**: After running backend and frontend coverage tests (which generate
|
||||||
|
`backend/coverage.txt` and `frontend/coverage/lcov.info`), run the local patch
|
||||||
|
report to identify uncovered lines in changed files.
|
||||||
|
|
||||||
|
**Purpose**: Overall coverage can be healthy while the specific lines you changed
|
||||||
|
are untested. This step catches that gap. If uncovered lines are found in
|
||||||
|
feature code, add targeted tests before completing the task.
|
||||||
|
|
||||||
|
**Prerequisites**: Coverage artifacts must exist before running the report:
|
||||||
|
- `backend/coverage.txt` — generated by `scripts/go-test-coverage.sh`
|
||||||
|
- `frontend/coverage/lcov.info` — generated by `scripts/frontend-test-coverage.sh`
|
||||||
|
|
||||||
Run one of the following from `/projects/Charon`:
|
Run one of the following from `/projects/Charon`:
|
||||||
|
|
||||||
@@ -26,11 +36,14 @@ Test: Local Patch Report
|
|||||||
bash scripts/local-patch-report.sh
|
bash scripts/local-patch-report.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Required artifacts:
|
Required output artifacts:
|
||||||
- `test-results/local-patch-report.md`
|
- `test-results/local-patch-report.md`
|
||||||
- `test-results/local-patch-report.json`
|
- `test-results/local-patch-report.json`
|
||||||
|
|
||||||
This preflight is advisory for thresholds during rollout, but artifact generation is required in DoD.
|
**Action on results**: If patch coverage for any changed file is below 90%, add
|
||||||
|
tests targeting the uncovered changed lines. Re-run coverage and this report to
|
||||||
|
verify improvement. Artifact generation is required for DoD regardless of
|
||||||
|
threshold results.
|
||||||
|
|
||||||
### PREREQUISITE: Start E2E Environment
|
### PREREQUISITE: Start E2E Environment
|
||||||
|
|
||||||
|
|||||||
0
.github/instructions/typescript-5-es2022.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/typescript-5-es2022.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/update-docs-on-code-change.instructions.md
vendored
Normal file → Executable file
0
.github/instructions/update-docs-on-code-change.instructions.md
vendored
Normal file → Executable file
0
.github/prompts/ai-prompt-engineering-safety-review.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/ai-prompt-engineering-safety-review.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/breakdown-feature-implementation.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/breakdown-feature-implementation.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/codecov-patch-coverage-fix.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/codecov-patch-coverage-fix.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/create-github-issues-feature-from-implementation-plan.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/create-github-issues-feature-from-implementation-plan.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/create-implementation-plan.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/create-implementation-plan.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/create-technical-spike.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/create-technical-spike.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/debug-web-console-errors.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/debug-web-console-errors.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/playwright-explore-website.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/playwright-explore-website.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/playwright-generate-test.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/playwright-generate-test.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/prompt-builder.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/prompt-builder.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/sql-code-review.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/sql-code-review.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/sql-optimization.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/sql-optimization.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/structured-autonomy-generate.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/structured-autonomy-generate.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/structured-autonomy-implement.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/structured-autonomy-implement.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/structured-autonomy-plan.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/structured-autonomy-plan.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/suggest-awesome-github-copilot-agents.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/suggest-awesome-github-copilot-agents.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/suggest-awesome-github-copilot-collections.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/suggest-awesome-github-copilot-collections.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/suggest-awesome-github-copilot-instructions.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/suggest-awesome-github-copilot-instructions.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/suggest-awesome-github-copilot-prompts.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/suggest-awesome-github-copilot-prompts.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/supply-chain-vulnerability-remediation.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/supply-chain-vulnerability-remediation.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/update-implementation-plan.prompt.md
vendored
Normal file → Executable file
0
.github/prompts/update-implementation-plan.prompt.md
vendored
Normal file → Executable file
0
.github/propagate-config.yml
vendored
Normal file → Executable file
0
.github/propagate-config.yml
vendored
Normal file → Executable file
0
.github/release-drafter.yml
vendored
Normal file → Executable file
0
.github/release-drafter.yml
vendored
Normal file → Executable file
51
.github/renovate.json
vendored
Normal file → Executable file
51
.github/renovate.json
vendored
Normal file → Executable file
@@ -6,11 +6,11 @@
|
|||||||
":separateMultipleMajorReleases",
|
":separateMultipleMajorReleases",
|
||||||
"helpers:pinGitHubActionDigests"
|
"helpers:pinGitHubActionDigests"
|
||||||
],
|
],
|
||||||
"baseBranches": [
|
"baseBranchPatterns": [
|
||||||
"feature/beta-release",
|
"feature/beta-release",
|
||||||
"development"
|
"development"
|
||||||
|
|
||||||
],
|
],
|
||||||
|
"postUpdateOptions": ["npmDedupe"],
|
||||||
"timezone": "America/New_York",
|
"timezone": "America/New_York",
|
||||||
"dependencyDashboard": true,
|
"dependencyDashboard": true,
|
||||||
"dependencyDashboardApproval": true,
|
"dependencyDashboardApproval": true,
|
||||||
@@ -231,20 +231,39 @@
|
|||||||
"datasourceTemplate": "github-releases",
|
"datasourceTemplate": "github-releases",
|
||||||
"versioningTemplate": "semver",
|
"versioningTemplate": "semver",
|
||||||
"extractVersionTemplate": "^v(?<version>.*)$"
|
"extractVersionTemplate": "^v(?<version>.*)$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"customType": "regex",
|
||||||
|
"description": "Track go-version in skill example workflows",
|
||||||
|
"managerFilePatterns": ["/^\\.github/skills/examples/.*\\.yml$/"],
|
||||||
|
"matchStrings": [
|
||||||
|
"go-version: [\"']?(?<currentValue>[\\d\\.]+)[\"']?"
|
||||||
|
],
|
||||||
|
"depNameTemplate": "golang/go",
|
||||||
|
"datasourceTemplate": "golang-version",
|
||||||
|
"versioningTemplate": "semver"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
|
"github-actions": {
|
||||||
|
"managerFilePatterns": [
|
||||||
|
"/^\\.github/skills/examples/.*\\.ya?ml$/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
"packageRules": [
|
"packageRules": [
|
||||||
{
|
{
|
||||||
"description": "THE MEGAZORD: Group ALL non-major updates (NPM, Docker, Go, Actions) into one PR",
|
"description": "THE MEGAZORD: Group ALL non-major updates (NPM, Docker, Go, Actions) into one PR",
|
||||||
"matchPackagePatterns": ["*"],
|
|
||||||
"matchUpdateTypes": [
|
"matchUpdateTypes": [
|
||||||
"minor",
|
"minor",
|
||||||
"patch",
|
"patch",
|
||||||
"pin",
|
"pin",
|
||||||
"digest"
|
"digest"
|
||||||
],
|
],
|
||||||
"groupName": "non-major-updates"
|
"groupName": "non-major-updates",
|
||||||
|
"matchPackageNames": [
|
||||||
|
"*"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Feature branches: Auto-merge non-major updates after proven stable",
|
"description": "Feature branches: Auto-merge non-major updates after proven stable",
|
||||||
@@ -276,6 +295,24 @@
|
|||||||
"matchPackageNames": ["caddy"],
|
"matchPackageNames": ["caddy"],
|
||||||
"allowedVersions": "<3.0.0"
|
"allowedVersions": "<3.0.0"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"description": "Go: keep pgx within v4 (CrowdSec requires pgx/v4 module path)",
|
||||||
|
"matchDatasources": ["go"],
|
||||||
|
"matchPackageNames": ["github.com/jackc/pgx/v4"],
|
||||||
|
"allowedVersions": "<5.0.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Go: keep go-jose/v3 within v3 (v4 is a different Go module path)",
|
||||||
|
"matchDatasources": ["go"],
|
||||||
|
"matchPackageNames": ["github.com/go-jose/go-jose/v3"],
|
||||||
|
"allowedVersions": "<4.0.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Go: keep go-jose/v4 within v4 (v5 would be a different Go module path)",
|
||||||
|
"matchDatasources": ["go"],
|
||||||
|
"matchPackageNames": ["github.com/go-jose/go-jose/v4"],
|
||||||
|
"allowedVersions": "<5.0.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"description": "Safety: Keep MAJOR updates separate and require manual review",
|
"description": "Safety: Keep MAJOR updates separate and require manual review",
|
||||||
"matchUpdateTypes": ["major"],
|
"matchUpdateTypes": ["major"],
|
||||||
@@ -287,6 +324,12 @@
|
|||||||
"matchDatasources": ["go"],
|
"matchDatasources": ["go"],
|
||||||
"matchPackageNames": ["github.com/oschwald/geoip2-golang/v2"],
|
"matchPackageNames": ["github.com/oschwald/geoip2-golang/v2"],
|
||||||
"sourceUrl": "https://github.com/oschwald/geoip2-golang"
|
"sourceUrl": "https://github.com/oschwald/geoip2-golang"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Fix Renovate lookup for google/uuid",
|
||||||
|
"matchDatasources": ["go"],
|
||||||
|
"matchPackageNames": ["github.com/google/uuid"],
|
||||||
|
"sourceUrl": "https://github.com/google/uuid"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
0
.github/security-severity-policy.yml
vendored
Normal file → Executable file
0
.github/security-severity-policy.yml
vendored
Normal file → Executable file
0
.github/skills/.skill-quickref-gorm-scanner.md
vendored
Normal file → Executable file
0
.github/skills/.skill-quickref-gorm-scanner.md
vendored
Normal file → Executable file
0
.github/skills/README.md
vendored
Normal file → Executable file
0
.github/skills/README.md
vendored
Normal file → Executable file
0
.github/skills/docker-prune.SKILL.md
vendored
Normal file → Executable file
0
.github/skills/docker-prune.SKILL.md
vendored
Normal file → Executable file
0
.github/skills/docker-rebuild-e2e.SKILL.md
vendored
Normal file → Executable file
0
.github/skills/docker-rebuild-e2e.SKILL.md
vendored
Normal file → Executable file
0
.github/skills/docker-start-dev.SKILL.md
vendored
Normal file → Executable file
0
.github/skills/docker-start-dev.SKILL.md
vendored
Normal file → Executable file
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user