Integration: Validation pipeline, validation-gated apply, diff review, DoD gating, error recovery, and security hardening #417

Merged
CoreRasurae merged 14 commits from develop-luis-2 into master 2026-02-25 14:29:09 +00:00
Member

Summary

Integration branch combining 8 features across milestones v3.0.0, v3.2.0, and v3.3.0, all on the develop-luis-2 branch rebased on master.

Included Features (by commit)

  1. feat(apply): add validation-gated apply pipeline (Closes #155, v3.0.0)

    • Core plan apply service: diff review, artifact output, apply summary persistence, merge-failure handling, empty ChangeSet guard, and terminal state transitions
  2. feat(validation): add validation pipeline and results model (Closes #175, v3.2.0)

    • Validation pipeline with rule-based checks, severity levels, result aggregation, and gate enforcement
  3. feat(apply): add validation-gated apply pipeline + feat(apply): run validation attachments (Closes #176, v3.2.0)

    • Apply pipeline gated by validation results, attachment handling during apply phase
  4. feat(change): add diff review artifacts (Closes #303, v3.2.0)

    • Diff review artifact model with inline comments, approval status, and plan service integration
  5. feat(dod): enforce definition-of-done gating (Closes #178, v3.2.0)

    • Definition-of-done criteria model with completeness checks and gate enforcement
  6. feat(plan): add error recovery patterns and CLI hints (Closes #186, v3.3.0)

    • Error recovery patterns (retry, fallback, skip, abort), CLI hint generation, plan executor integration
  7. fix(security): harden template rendering (Closes #319, v3.3.0)

    • Secure Jinja2 renderer with sandboxed environment, filesystem access controls, and resource limits
  8. fix(security): enforce explicit exception handling (Closes #320, v3.3.0)

    • Explicit exception hierarchy, bare-except prohibition, structured error context, and audit logging

Closes #155, Closes #175, Closes #176, Closes #178, Closes #186, Closes #303, Closes #319, Closes #320

## Summary Integration branch combining 8 features across milestones v3.0.0, v3.2.0, and v3.3.0, all on the `develop-luis-2` branch rebased on master. ### Included Features (by commit) 1. **`feat(apply): add validation-gated apply pipeline`** (Closes #155, v3.0.0) - Core plan apply service: diff review, artifact output, apply summary persistence, merge-failure handling, empty ChangeSet guard, and terminal state transitions 2. **`feat(validation): add validation pipeline and results model`** (Closes #175, v3.2.0) - Validation pipeline with rule-based checks, severity levels, result aggregation, and gate enforcement 3. **`feat(apply): add validation-gated apply pipeline`** + **`feat(apply): run validation attachments`** (Closes #176, v3.2.0) - Apply pipeline gated by validation results, attachment handling during apply phase 4. **`feat(change): add diff review artifacts`** (Closes #303, v3.2.0) - Diff review artifact model with inline comments, approval status, and plan service integration 5. **`feat(dod): enforce definition-of-done gating`** (Closes #178, v3.2.0) - Definition-of-done criteria model with completeness checks and gate enforcement 6. **`feat(plan): add error recovery patterns and CLI hints`** (Closes #186, v3.3.0) - Error recovery patterns (retry, fallback, skip, abort), CLI hint generation, plan executor integration 7. **`fix(security): harden template rendering`** (Closes #319, v3.3.0) - Secure Jinja2 renderer with sandboxed environment, filesystem access controls, and resource limits 8. **`fix(security): enforce explicit exception handling`** (Closes #320, v3.3.0) - Explicit exception hierarchy, bare-except prohibition, structured error context, and audit logging Closes #155, Closes #175, Closes #176, Closes #178, Closes #186, Closes #303, Closes #319, Closes #320
feat(apply): add validation-gated apply pipeline
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 18s
CI / typecheck (pull_request) Successful in 38s
CI / security (pull_request) Successful in 44s
CI / integration_tests (pull_request) Successful in 3m33s
CI / unit_tests (pull_request) Successful in 9m48s
CI / docker (pull_request) Successful in 37s
CI / benchmark-regression (pull_request) Successful in 17m20s
CI / coverage (pull_request) Failing after 24m36s
86b263df4c
brent.edwards approved these changes 2026-02-24 19:34:28 +00:00
Dismissed
brent.edwards left a comment

Approved, because it passes all tests -- but there are conflicting files.

Approved, because it passes all tests -- but there are conflicting files.
freemo requested changes 2026-02-24 22:26:30 +00:00
Dismissed
freemo left a comment

Code Review: PR #417Set of 4 features

This PR has multiple critical violations of the project's contributing guidelines and cannot be reviewed in its current form. It requires fundamental restructuring before it can proceed.

Critical Issues

1. Empty PR description (CONTRIBUTING.md §1 — PR Process)
The PR body is completely empty. Per guidelines: "Every PR must include a clear, descriptive body that explains the purpose of the change... PRs submitted without a description or without an issue reference will not be reviewed." At minimum the description must contain:

  • A summary of changes and motivation
  • An issue reference with a closing keyword (e.g., Closes #XX)
  • A dependency link to the issue

2. No milestone assigned (CONTRIBUTING.md §11)
"Every PR must be assigned to the same milestone as its linked issue(s). A PR without a milestone will not be reviewed."

3. No issue reference (CONTRIBUTING.md §1, §4)
There is no linked issue. Per guidelines: "If your change is not associated with an existing issue, create one first." Every commit must also reference issues in its footer.

4. Multiple unrelated features bundled in one PR (CONTRIBUTING.md §2)
This PR bundles at least 4 distinct, independent features: validation pipeline, validation apply gate, diff review artifacts, and validation-gated apply pipeline — plus unrelated tool registry fallback coverage and skill registry documentation changes. Per guidelines: "Each PR must be associated with a single Epic. Do not combine work from multiple unrelated Epics in one PR. If your changes span multiple Epics, split them into separate PRs."

5. Not mergeable
The PR has merge conflicts with master that must be resolved.

6. Non-descriptive title
"Set of 4 features" does not follow the Conventional Changelog format expected for PR titles. It should reflect the specific change being made.

7. Branch naming
Branch develop-luis-2 is a personal development branch name, not a feature branch following project conventions (e.g., feature/m3-validation-pipeline).

Additional Violations

8. No CHANGELOG update (CONTRIBUTING.md §6) — 4 new features with zero changelog entries.

9. No CONTRIBUTORS.md update (CONTRIBUTING.md §8) — Luis Mendes (CoreRasurae) is not listed in CONTRIBUTORS.md.

10. No issue references in commit footers (CONTRIBUTING.md §4) — All 4 commits have empty bodies/footers with no Refs: or Closes: references.

11. Broad exception handlingplan_apply_service.py contains except Exception blocks (around lines 567, 605) that swallow lifecycle errors at DEBUG level, violating the error handling guidelines.

12. Missing input validationplan_id is not validated in apply_with_validation_gate; DiffBuilder constructor doesn't validate parameters.

  1. Split this PR into 4-5 separate PRs, one per logical feature, each with its own issue, tests, docs, and changelog entry.
  2. Create issues for each feature if they don't already exist.
  3. Use properly named feature branches (e.g., feature/m3-validation-pipeline).
  4. Write complete PR descriptions with issue references.
  5. Assign milestones and appropriate labels.
  6. Resolve merge conflicts.

This PR should be closed and replaced with properly scoped PRs.

## Code Review: PR #417 — `Set of 4 features` This PR has multiple critical violations of the project's contributing guidelines and cannot be reviewed in its current form. It requires fundamental restructuring before it can proceed. ### Critical Issues **1. Empty PR description (CONTRIBUTING.md §1 — PR Process)** The PR body is completely empty. Per guidelines: "Every PR must include a clear, descriptive body that explains the purpose of the change... PRs submitted without a description or without an issue reference will not be reviewed." At minimum the description must contain: - A summary of changes and motivation - An issue reference with a closing keyword (e.g., `Closes #XX`) - A dependency link to the issue **2. No milestone assigned (CONTRIBUTING.md §11)** "Every PR must be assigned to the same milestone as its linked issue(s). A PR without a milestone will not be reviewed." **3. No issue reference (CONTRIBUTING.md §1, §4)** There is no linked issue. Per guidelines: "If your change is not associated with an existing issue, create one first." Every commit must also reference issues in its footer. **4. Multiple unrelated features bundled in one PR (CONTRIBUTING.md §2)** This PR bundles **at least 4 distinct, independent features**: validation pipeline, validation apply gate, diff review artifacts, and validation-gated apply pipeline — plus unrelated tool registry fallback coverage and skill registry documentation changes. Per guidelines: "Each PR must be associated with a single Epic. Do not combine work from multiple unrelated Epics in one PR. If your changes span multiple Epics, split them into separate PRs." **5. Not mergeable** The PR has merge conflicts with `master` that must be resolved. **6. Non-descriptive title** "Set of 4 features" does not follow the Conventional Changelog format expected for PR titles. It should reflect the specific change being made. **7. Branch naming** Branch `develop-luis-2` is a personal development branch name, not a feature branch following project conventions (e.g., `feature/m3-validation-pipeline`). ### Additional Violations **8. No CHANGELOG update (CONTRIBUTING.md §6)** — 4 new features with zero changelog entries. **9. No CONTRIBUTORS.md update (CONTRIBUTING.md §8)** — Luis Mendes (CoreRasurae) is not listed in CONTRIBUTORS.md. **10. No issue references in commit footers (CONTRIBUTING.md §4)** — All 4 commits have empty bodies/footers with no `Refs:` or `Closes:` references. **11. Broad exception handling** — `plan_apply_service.py` contains `except Exception` blocks (around lines 567, 605) that swallow lifecycle errors at DEBUG level, violating the error handling guidelines. **12. Missing input validation** — `plan_id` is not validated in `apply_with_validation_gate`; `DiffBuilder` constructor doesn't validate parameters. ### Recommended Path Forward 1. **Split this PR into 4-5 separate PRs**, one per logical feature, each with its own issue, tests, docs, and changelog entry. 2. Create issues for each feature if they don't already exist. 3. Use properly named feature branches (e.g., `feature/m3-validation-pipeline`). 4. Write complete PR descriptions with issue references. 5. Assign milestones and appropriate labels. 6. Resolve merge conflicts. This PR should be closed and replaced with properly scoped PRs.
CoreRasurae dismissed brent.edwards's review 2026-02-24 22:33:14 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

CoreRasurae force-pushed develop-luis-2 from 2c6c0ef510
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Failing after 19s
CI / build (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 28s
CI / security (pull_request) Successful in 53s
CI / typecheck (pull_request) Successful in 56s
CI / coverage (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Has been skipped
CI / integration_tests (pull_request) Successful in 3m32s
CI / unit_tests (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
to 9ce0ab3f5f
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / quality (pull_request) Successful in 17s
CI / lint (pull_request) Successful in 20s
CI / build (pull_request) Successful in 24s
CI / typecheck (pull_request) Successful in 34s
CI / security (pull_request) Successful in 51s
CI / integration_tests (pull_request) Successful in 4m23s
CI / unit_tests (pull_request) Successful in 10m27s
CI / docker (pull_request) Successful in 58s
CI / coverage (pull_request) Successful in 17m59s
CI / benchmark-regression (pull_request) Successful in 18m1s
2026-02-24 22:38:25 +00:00
Compare
freemo dismissed freemo's review 2026-02-24 22:45:45 +00:00
Reason:

dont want hard block

CoreRasurae force-pushed develop-luis-2 from cedacd3741
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 14s
CI / build (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 19s
CI / typecheck (pull_request) Successful in 38s
CI / security (pull_request) Successful in 48s
CI / integration_tests (pull_request) Failing after 3m30s
CI / unit_tests (pull_request) Successful in 5m41s
CI / docker (pull_request) Successful in 39s
CI / benchmark-regression (pull_request) Successful in 16m32s
CI / coverage (pull_request) Successful in 18m25s
to d2439f69cf
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 16s
CI / build (pull_request) Successful in 22s
CI / security (pull_request) Successful in 28s
CI / typecheck (pull_request) Successful in 35s
CI / integration_tests (pull_request) Successful in 2m33s
CI / coverage (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
2026-02-24 23:40:04 +00:00
Compare
CoreRasurae force-pushed develop-luis-2 from bde5e0c108
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 20s
CI / build (pull_request) Successful in 18s
CI / security (pull_request) Successful in 53s
CI / typecheck (pull_request) Successful in 58s
CI / integration_tests (pull_request) Failing after 3m4s
CI / unit_tests (pull_request) Failing after 3m7s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 3m50s
CI / benchmark-regression (pull_request) Successful in 16m27s
to a055100953
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Failing after 14s
CI / build (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 17s
CI / security (pull_request) Successful in 39s
CI / typecheck (pull_request) Successful in 40s
CI / coverage (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Has been skipped
CI / unit_tests (pull_request) Failing after 2m8s
CI / docker (pull_request) Has been skipped
CI / integration_tests (pull_request) Successful in 2m32s
2026-02-25 00:30:50 +00:00
Compare
CoreRasurae added this to the v3.0.0 milestone 2026-02-25 07:37:55 +00:00
CoreRasurae changed title from Set of 4 features to Integration: Validation pipeline, validation-gated apply, diff review, DoD gating, error recovery, and security hardening 2026-02-25 07:40:11 +00:00
CoreRasurae modified the milestone from v3.0.0 to v3.2.0 2026-02-25 07:40:11 +00:00
CoreRasurae force-pushed develop-luis-2 from 58ba40a2f8
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / build (pull_request) Successful in 18s
CI / quality (pull_request) Successful in 30s
CI / typecheck (pull_request) Successful in 33s
CI / security (pull_request) Successful in 34s
CI / integration_tests (pull_request) Successful in 4m7s
CI / unit_tests (pull_request) Successful in 9m3s
CI / docker (pull_request) Successful in 39s
CI / benchmark-regression (pull_request) Successful in 22m0s
CI / coverage (pull_request) Successful in 30m20s
to 17ea9c53fb
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 19s
CI / build (pull_request) Successful in 24s
CI / security (pull_request) Successful in 33s
CI / typecheck (pull_request) Successful in 35s
CI / integration_tests (pull_request) Successful in 2m26s
CI / unit_tests (pull_request) Successful in 8m29s
CI / docker (pull_request) Successful in 37s
CI / benchmark-regression (pull_request) Successful in 22m9s
CI / coverage (pull_request) Successful in 30m15s
CI / lint (push) Successful in 22s
CI / security (push) Successful in 27s
CI / quality (push) Successful in 30s
CI / typecheck (push) Successful in 59s
CI / benchmark-regression (push) Has been skipped
CI / build (push) Successful in 42s
CI / integration_tests (push) Successful in 4m54s
CI / unit_tests (push) Successful in 11m22s
CI / docker (push) Successful in 8s
CI / benchmark-publish (push) Successful in 13m14s
CI / coverage (push) Successful in 43m21s
2026-02-25 10:08:00 +00:00
Compare
aditya approved these changes 2026-02-25 14:27:27 +00:00
CoreRasurae deleted branch develop-luis-2 2026-02-25 14:29:11 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
cleveragents/cleveragents-core!417
No description provided.