diff --git a/work-package/REVIEW-MODE.md b/work-package/REVIEW-MODE.md index b4a54374c..2d9c34d3f 100644 --- a/work-package/REVIEW-MODE.md +++ b/work-package/REVIEW-MODE.md @@ -54,7 +54,7 @@ The create path and the review path each carry their own findings gate, because The same boundary gates the `review-fix-cycle` loop out of review mode. `code_findings_actionable` and `test_findings_actionable` say a finding reached the severity that warrants action; on the review path the action is raising it to the author, and no component file is edited. -`jira-project-selection` (`start-work-package`) is gated `issue_platform == jira` inside the issue-creation branch and never fires in review mode (which references an existing PR/issue), so it needs no review-mode treatment. +`jira-project-selection` (`start-work-package`) is gated `issue_platform == jira && needs_issue_creation == true`, and a review run references an existing PR and issue, so it never fires there and needs no review-mode treatment. --- diff --git a/work-package/activities/01-start-work-package.yaml b/work-package/activities/01-start-work-package.yaml index c18e989cd..3a73c7780 100644 --- a/work-package/activities/01-start-work-package.yaml +++ b/work-package/activities/01-start-work-package.yaml @@ -1,5 +1,5 @@ id: start-work-package -version: 3.16.0 +version: 3.18.0 name: Start Work Package description: Initialize the work package with issue, branch, draft PR, dedicated worktree, and planning folder. required: true @@ -150,6 +150,12 @@ steps: type: simple variable: host_repo_path operator: exists + - kind: action + id: verify-signing-precondition + actions: + - action: validate + target: signing.configured == true + message: Commit signing is not configured for this repository (user.signingkey, commit.gpgsign, or a working signing backend is missing). Configure git signing before re-running. - kind: technique id: analyze-repo-with-gitnexus technique: @@ -160,12 +166,6 @@ steps: - action: set target: gitnexus_indexed value: true - - kind: action - id: verify-signing-precondition - actions: - - action: validate - target: signing.configured == true - message: Commit signing is not configured for this repository (user.signingkey, commit.gpgsign, or a working signing backend is missing). Configure git signing before re-running. - kind: technique id: detect-merge-strategy technique: manage-git::detect-merge-strategy @@ -213,6 +213,48 @@ steps: effect: setVariable: issue_skipped: true + - kind: checkpoint + id: platform-selection + condition: + type: simple + variable: needs_issue_creation + operator: == + value: true + message: Select the platform for the new issue. + options: + - id: github + label: GitHub + description: Create issue in GitHub repository + effect: + setVariable: + issue_platform: github + - id: jira + label: Jira + description: Create issue in Jira project + effect: + setVariable: + issue_platform: jira + - kind: technique + id: detect-provided-issue-reference + technique: issue-reference-detection + condition: + type: and + conditions: + - type: simple + variable: is_review_mode + operator: "!=" + value: true + - type: simple + variable: needs_issue_creation + operator: "!=" + value: true + - type: simple + variable: issue_skipped + operator: "!=" + value: true + - type: simple + variable: issue_platform + operator: notExists - kind: technique id: verify-jira-issue technique: @@ -294,10 +336,16 @@ steps: - kind: checkpoint id: jira-project-selection condition: - type: simple - variable: issue_platform - operator: == - value: jira + type: and + conditions: + - type: simple + variable: issue_platform + operator: == + value: jira + - type: simple + variable: needs_issue_creation + operator: == + value: true message: Select the Jira project for the new issue. options: - id: select @@ -406,27 +454,6 @@ steps: id: create-issue technique: create-issue when: needs_issue_creation == true - - kind: checkpoint - id: platform-selection - condition: - type: simple - variable: needs_issue_creation - operator: == - value: true - message: Select the platform for the new issue. - options: - - id: github - label: GitHub - description: Create issue in GitHub repository - effect: - setVariable: - issue_platform: github - - id: jira - label: Jira - description: Create issue in Jira project - effect: - setVariable: - issue_platform: jira - kind: technique id: lookup-current-user technique: atlassian-operations::user-info diff --git a/work-package/activities/07-assumptions-review.yaml b/work-package/activities/07-assumptions-review.yaml index 457ef5657..c39470d6d 100644 --- a/work-package/activities/07-assumptions-review.yaml +++ b/work-package/activities/07-assumptions-review.yaml @@ -1,5 +1,5 @@ id: assumptions-review -version: 2.6.0 +version: 2.7.0 name: Assumptions Review description: Converge open assumptions via analyse-challenge, then batch residual stakeholder judgements. required: true @@ -83,10 +83,6 @@ steps: - kind: technique id: update-assumptions-log technique: review-assumptions::record - - kind: technique - id: post-summary-jira - technique: atlassian-operations::comment-jira-issue - when: stealth_mode != true && is_review_mode != true && issue_platform == 'jira' && has_deferred_assumptions == true && post_jira_comment != false - kind: checkpoint id: post-summary-review condition: @@ -115,19 +111,26 @@ steps: - id: post-summary label: Post summary to issue tracker description: Post the resolution summary + effect: + setVariable: + post_summary_approved: true - id: skip-posting label: Skip posting description: Do not post to issue tracker effect: setVariable: - post_jira_comment: false + post_summary_approved: false + - kind: technique + id: post-summary-jira + technique: atlassian-operations::comment-jira-issue + when: stealth_mode != true && is_review_mode != true && issue_platform == 'jira' && has_deferred_assumptions == true && post_summary_approved == true - kind: technique id: post-summary-github technique: name: github-cli-protocol::comment-issue inputs: repo_path: component_git_dir - when: stealth_mode != true && is_review_mode != true && issue_platform == 'github' && has_deferred_assumptions == true + when: stealth_mode != true && is_review_mode != true && issue_platform == 'github' && has_deferred_assumptions == true && post_summary_approved == true transitions: - to: codebase-comprehension condition: diff --git a/work-package/activities/13-submit-for-review.yaml b/work-package/activities/13-submit-for-review.yaml index e7b02c985..c0ac633d3 100644 --- a/work-package/activities/13-submit-for-review.yaml +++ b/work-package/activities/13-submit-for-review.yaml @@ -1,5 +1,5 @@ id: submit-for-review -version: 1.15.0 +version: 1.16.0 name: Submit for Review description: Submit the work for review — PR review lifecycle normally; a verified private-remote push in stealth mode. required: true @@ -272,6 +272,10 @@ steps: variable: stealth_mode operator: "!=" value: true + - type: simple + variable: project_type + operator: == + value: rust-substrate message: Do any build-dependent artifacts need user-owned regeneration (e.g. .scale / node metadata)? blocking: true options: @@ -287,6 +291,13 @@ steps: effect: setVariable: build_dependent_artifacts_pending: true + - kind: action + id: derive-regen-commands + when: build_dependent_artifacts_pending == true + actions: + - action: set + target: build_dependent_artifact_commands + message: The commands that regenerate this project's build-dependent artifacts, read from its build manifest and scripts, with a note on who owns each. One command per line. - kind: checkpoint id: build-artifact-handoff condition: diff --git a/work-package/techniques/create-issue.md b/work-package/techniques/create-issue.md index 56d62f089..2163f6243 100644 --- a/work-package/techniques/create-issue.md +++ b/work-package/techniques/create-issue.md @@ -1,6 +1,6 @@ --- metadata: - version: 3.2.0 + version: 3.3.0 --- ## Capability @@ -51,7 +51,7 @@ URL of the verified or newly created issue. ### 2. Resolve Platform For Creation - Runs when no existing issue key was given. Set `{needs_issue_creation}` to true. -- If the platform is ambiguous (user did not select GitHub or Jira), obtain the user's platform selection and set `{issue_platform}` before creating. +- `{issue_platform}` carries the choice made at the `platform-selection` gate, which the activity presents before this technique runs. Use it as given; do not re-ask. ### 3. Create Github Issue diff --git a/work-package/techniques/issue-reference-detection.md b/work-package/techniques/issue-reference-detection.md index 5c1fb3d78..47c43675d 100644 --- a/work-package/techniques/issue-reference-detection.md +++ b/work-package/techniques/issue-reference-detection.md @@ -1,6 +1,6 @@ --- metadata: - version: 1.0.0 + version: 1.1.0 --- ## Capability @@ -11,7 +11,7 @@ Whether the user supplied an issue reference, with platform and id when present ### issue_request -The user-supplied issue reference or request — the issue key, URL, or surrounding text the user provided when starting the work package. +The user-supplied issue reference or request — the issue key, URL, or surrounding text the user provided, whether in the request that started the work package or in the response to the `issue-verification` gate. ## Outputs diff --git a/work-package/workflow.yaml b/work-package/workflow.yaml index bbb3824f3..cf1ec1a97 100644 --- a/work-package/workflow.yaml +++ b/work-package/workflow.yaml @@ -1,6 +1,6 @@ $schema: ../../schemas/workflow.schema.json id: work-package -version: 3.43.0 +version: 3.44.0 title: Work Package Implementation Workflow description: Defines how to plan and implement ONE work package from inception to merged PR. A work package is a discrete unit of work such as a feature, bug-fix, enhancement, refactoring, or any other deliverable change. For multiple related work packages, use the work-packages workflow to create a roadmap first. Also supports review mode for auditing an existing PR or implementation end-to-end. author: m2ux @@ -301,9 +301,9 @@ variables: type: boolean description: Whether stakeholder discussion transcript was provided. defaultValue: false - - name: post_jira_comment + - name: post_summary_approved type: boolean - description: Whether to post assumptions comment to Jira. + description: Whether the deferred-assumptions summary is posted to the issue tracker, as decided at the post-summary-review gate. defaultValue: false - name: has_stakeholder_comment type: boolean diff --git a/workflow-design/activities/01-intake-and-context.yaml b/workflow-design/activities/01-intake-and-context.yaml index 5ef50ee11..b1b42e113 100644 --- a/workflow-design/activities/01-intake-and-context.yaml +++ b/workflow-design/activities/01-intake-and-context.yaml @@ -1,5 +1,5 @@ id: intake-and-context -version: 1.8.0 +version: 1.9.0 name: Intake and Context description: "Establish the operation type, mode, and target for the request, and internalize the schema system and YAML-format conventions that ground all drafting." required: true @@ -13,15 +13,6 @@ steps: - kind: technique id: intake-classification technique: intake-classification - - kind: technique - id: persist-structural-inventory - technique: - name: work-package::manage-artifacts::write-artifact - inputs: - bare_filename: structural-inventory.json - artifact_content: structural_inventory - target_dir: planning_folder_path - when: operation_type == "update" || operation_type == "review" - kind: checkpoint id: design-intent-batch condition: @@ -76,6 +67,15 @@ steps: operation_type: create operation_type_ambiguous: false intent_needs_confirmation: false + - kind: technique + id: persist-structural-inventory + technique: + name: work-package::manage-artifacts::write-artifact + inputs: + bare_filename: structural-inventory.json + artifact_content: structural_inventory + target_dir: planning_folder_path + when: operation_type == "update" || operation_type == "review" - kind: action id: announce-certain-intent when: intent_needs_confirmation == false && update_seeded_from_review != true && operation_type != 'review'