From dbd39aef115bb9888595c1218deb87d0ddc50d9d Mon Sep 17 00:00:00 2001 From: Jorge Aguado Recio Date: Tue, 13 Oct 2026 12:39:39 +0200 Subject: [PATCH 1/3] chore: require user confirmation between subtasks in openspec apply Signed-off-by: Jorge Aguado Recio --- openspec/config.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/openspec/config.yaml b/openspec/config.yaml index 60e3950984d..bac0184d203 100644 --- a/openspec/config.yaml +++ b/openspec/config.yaml @@ -83,6 +83,7 @@ rules: operations: apply: guidance: + - When a subtask is finished, you must stop and ask the user for confirmation before continuing with the other tasks. Do not proceed to the next subtask until the user explicitly confirms. - After implementing each module layer, run ./gradlew detekt on that module before moving to the next. - Write unit tests in a dedicated task group, not scattered across implementation tasks. Unit tests tasks must be the last ones to run. - Keep changes focused and atomic — do not refactor unrelated code as part of the same implementation. From 427cd848356730cad6c75fe6e3fa1a55d6f7f942 Mon Sep 17 00:00:00 2001 From: Jorge Aguado Recio Date: Wed, 14 Oct 2026 10:28:55 +0200 Subject: [PATCH 2/3] chore: add conditional release-notes task rule to openspec config Signed-off-by: Jorge Aguado Recio --- openspec/config.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/openspec/config.yaml b/openspec/config.yaml index bac0184d203..6a80cd91031 100644 --- a/openspec/config.yaml +++ b/openspec/config.yaml @@ -74,6 +74,7 @@ rules: tasks: - Order implementation tasks following the module dependency chain — owncloudComLibrary first, then owncloudData, owncloudDomain, owncloudApp last. - Add unit tests only for layers where they are established — UseCases in owncloudDomain, Repository/DataSource implementations in owncloudData. Do not add unit tests to any other layer or module. + - Only when the user explicitly requests release notes in the spec, include a release notes task as the final implementation task, placed immediately before the changelog task — draft the user-facing release notes entry summarising the change for end users. If the spec does not call for release notes, do not add this task. - Include a changelog task — create changelog/unreleased/XXXX (placeholder until PR number is known) following the project's changelog format. - If the implementation requires updating the context section above or CLAUDE.md, include a dedicated task for those documentation updates. - Add a QA section at the end of tasks.md with a test plan table with columns — Test name, Steps to execute, Expected result, Result, Comments — covering positive, negative, and regression cases. From c10141fb1e3c5f92fe33d36d4bd1e0a047224e6a Mon Sep 17 00:00:00 2001 From: Jorge Aguado Recio Date: Wed, 14 Oct 2026 10:31:10 +0200 Subject: [PATCH 3/3] chore: never mark the build/analysis task as executed in openspec apply Signed-off-by: Jorge Aguado Recio --- openspec/config.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/openspec/config.yaml b/openspec/config.yaml index 6a80cd91031..817e14621b3 100644 --- a/openspec/config.yaml +++ b/openspec/config.yaml @@ -89,6 +89,7 @@ operations: - Write unit tests in a dedicated task group, not scattered across implementation tasks. Unit tests tasks must be the last ones to run. - Keep changes focused and atomic — do not refactor unrelated code as part of the same implementation. - Every new file must end with a trailing blank line. + - Never mark the static analysis & build task (analysing and compiling the app — detekt / ktlint / lint / unit tests) as executed. Run it to validate locally, but leave its checkbox unchecked, since its result is not a committable change. verify: guidance: - Cross-check the implementation against specs.md — every SHALL/MUST requirement must be traceable to a concrete code path or test.