Skip to content

docs: add documentation/rules for use with local Agent to write better explainers, work breakdown structures, and implementation of WBS#638

Merged
rjmurillo merged 18 commits intomainfrom
docs/ai-tasks
Jul 27, 2025
Merged

docs: add documentation/rules for use with local Agent to write better explainers, work breakdown structures, and implementation of WBS#638
rjmurillo merged 18 commits intomainfrom
docs/ai-tasks

Conversation

@rjmurillo
Copy link
Copy Markdown
Owner

@rjmurillo rjmurillo commented Jul 27, 2025

Summary by CodeRabbit

  • Documentation

    • Added detailed guidelines for generating Explainers/PRDs, creating and managing task lists, and structuring related GitHub issues.
    • Introduced strict task completion protocols for AI assistant workflows to ensure consistent progress tracking and quality control.
    • Updated contribution and project instructions to require stricter build and test commands, including pedantic build mode and custom test settings.
  • Chores

    • Enhanced process documentation to support junior developer onboarding and workflow clarity.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Jul 27, 2025

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

This change introduces new procedural documentation and updates to existing instructions for generating Explainers/PRDs, creating and managing task lists, and enforcing stricter build and test protocols. The updates span new rule documents, enhancements to Copilot and project instructions, and expanded contributing guidelines, focusing on process clarity and workflow rigor.

Changes

Cohort / File(s) Change Summary
.cursor/rules/create-explainer.md, .cursor/rules/generate-tasks.md, .cursor/rules/process-task-list.md Adds new rule documents detailing protocols for generating Explainers/PRDs, task lists, and managing task completion in Markdown.
.github/copilot-instructions.md Adds a section formalizing task list management, completion protocol, and AI agent compliance for Copilot and local agent workflows.
.github/instructions/project.instructions.md, CONTRIBUTING.md Updates build and test commands for stricter validation, expands contributing principles, clarifies workflow, and improves formatting.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant AI Agent
    participant GitHub Issues

    User->>AI Agent: Request Explainer/PRD generation
    AI Agent->>User: Ask clarifying questions
    User->>AI Agent: Provide clarifications
    AI Agent->>GitHub Issues: Create Explainer/PRD issue

    User->>AI Agent: Request task list from Explainer/PRD
    AI Agent->>GitHub Issues: Analyze Explainer/PRD
    AI Agent->>User: Propose parent tasks, await confirmation
    User->>AI Agent: Confirm or revise tasks
    AI Agent->>GitHub Issues: Create parent and sub-task issues

    loop For each sub-task
        AI Agent->>User: Await approval to start sub-task
        User->>AI Agent: Approve sub-task
        AI Agent->>GitHub Issues: Mark sub-task in progress
        AI Agent->>GitHub Issues: Complete sub-task, mark as done
        AI Agent->>User: Pause for next approval
    end

    AI Agent->>GitHub Issues: Upon all sub-tasks complete, run tests, commit, mark parent task done
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Suggested reviewers

  • MattKotsenas

📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e8f0a07 and 72e044e.

📒 Files selected for processing (6)
  • .cursor/rules/create-explainer.md (1 hunks)
  • .cursor/rules/generate-tasks.md (1 hunks)
  • .cursor/rules/process-task-list.md (1 hunks)
  • .github/copilot-instructions.md (1 hunks)
  • .github/instructions/project.instructions.md (1 hunks)
  • CONTRIBUTING.md (17 hunks)
✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch docs/ai-tasks

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@codacy-production
Copy link
Copy Markdown

codacy-production bot commented Jul 27, 2025

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
+0.00% (target: -1.00%) (target: 95.00%)
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (e8f0a07) 1830 1632 89.18%
Head commit (72e044e) 1830 (+0) 1632 (+0) 89.18% (+0.00%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#638) 0 0 ∅ (not applicable)

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

See your quality gate settings    Change summary preferences

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e8f0a07 and da09944.

📒 Files selected for processing (5)
  • .cursor/rules/create-explainer.md (1 hunks)
  • .cursor/rules/generate-tasks.md (1 hunks)
  • .cursor/rules/process-task-list.md (1 hunks)
  • .github/instructions/project.instructions.md (1 hunks)
  • CONTRIBUTING.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
**/*.md

📄 CodeRabbit Inference Engine (CONTRIBUTING.md)

All documentation and markdown reports must pass formatting checks. Use a markdown linter if available.

Files:

  • CONTRIBUTING.md
**/CONTRIBUTING.md

📄 CodeRabbit Inference Engine (CONTRIBUTING.md)

Update contributing guidelines for workflow changes.

Files:

  • CONTRIBUTING.md
.github/instructions/*

📄 CodeRabbit Inference Engine (.github/copilot-instructions.md)

Update all relevant instruction files in .github/instructions/ when updating guidance

Files:

  • .github/instructions/project.instructions.md
🧠 Learnings (6)
📓 Common learnings
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {docs/rules/**,README.md} : Always update documentation for new features, API changes, or workflow/process changes
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {README.md,docs/rules/README.md} : Update README.md and docs/rules/README.md if workflows or rules change
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {docs/rules/**,README.md} : Update docs/rules/ and README.md if you add or change any analyzer, code fix, or workflow
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {src/Analyzers/AnalyzerReleases.Unshipped.md,docs/rules/**} : Update src/Analyzers/AnalyzerReleases.Unshipped.md and add or update documentation in docs/rules/ for each diagnostic
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {docs/rules/**,README.md} : Update docs/rules/ and README.md for any analyzer, code fix, or workflow change
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: If adding an analyzer, also add a code fix, a benchmark, and documentation in 'docs/rules'.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to docs/rules/**/*.md : Update 'docs/rules/' for analyzer changes.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Always check for and follow any new rules in .cursor/rules/, .editorconfig, and .github/copilot-instructions.md before making changes.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Reference affected analyzer rule IDs in PR descriptions.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to **/CONTRIBUTING.md : Update contributing guidelines for workflow changes.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: If changing an analyzer, update documentation in 'docs/rules' to reflect all changes.
CONTRIBUTING.md (16)

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to **/*.{cs,csproj,sln} : Build with 'dotnet build /p:PedanticMode=true'. All warnings must be treated as errors. PRs that do not build cleanly will be closed.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Build with warnings as errors using 'dotnet build /p:PedanticMode=true'.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to **/CONTRIBUTING.md : Update contributing guidelines for workflow changes.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to **/*.{cs} : Run 'dotnet format' and commit all changes before submitting a pull request. PRs with formatting issues will be rejected.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to **/*.{cs} : Run Codacy CLI analysis on all changed files and fix all reported issues before submitting the PR.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to README.md : Update README for significant changes.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {docs/rules/**,README.md} : Update docs/rules/ and README.md for any analyzer, code fix, or workflow change

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Summarize all changes in the PR description and cite relevant lines from modified files for clarity.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to tests/Moq.Analyzers.Benchmarks/**/*.cs : Performance-sensitive changes require benchmark validation. Run performance tests locally before submitting PRs and include performance regression analysis in PR description.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to tests/Moq.Analyzers.Test/**/*.cs : Add or update unit tests in tests/Moq.Analyzers.Test/ for every analyzer or code fix change

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Every pull request must include evidence of running code formatting, building with warnings as errors, and running all unit tests (console log/text or screenshots) in the PR description.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: When making changes, follow the workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues if any → Run/Update Tests → Fix test failures if any → Update Docs → Commit & PR.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to tests/**/*.cs : Run all unit tests using 'dotnet test --settings ./build/targets/tests/test.runsettings'. All tests must pass.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Run dotnet test (all must pass)

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Ensure all changes are covered by tests and documentation before committing.

.github/instructions/project.instructions.md (14)

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to **/*.{cs,csproj,sln} : Build with 'dotnet build /p:PedanticMode=true'. All warnings must be treated as errors. PRs that do not build cleanly will be closed.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Build with warnings as errors using 'dotnet build /p:PedanticMode=true'.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to **/*.{cs} : Run 'dotnet format' and commit all changes before submitting a pull request. PRs with formatting issues will be rejected.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to **/*.{cs} : Run Codacy CLI analysis on all changed files and fix all reported issues before submitting the PR.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Summarize all changes in the PR description and cite relevant lines from modified files for clarity.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to tests/Moq.Analyzers.Benchmarks/**/*.cs : Performance-sensitive changes require benchmark validation. Run performance tests locally before submitting PRs and include performance regression analysis in PR description.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to tests/**/*.cs : Run all unit tests using 'dotnet test --settings ./build/targets/tests/test.runsettings'. All tests must pass.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Every pull request must include evidence of running code formatting, building with warnings as errors, and running all unit tests (console log/text or screenshots) in the PR description.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Run dotnet build (no warnings allowed)

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .cursor/rules/csharp.mdc:0-0
Timestamp: 2025-07-19T08:09:48.255Z
Learning: Applies to *.{cs,csproj,sln} : Always read and apply the instructions in copilot-instructions.md when working on C# source or project files

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: When making changes, follow the workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues if any → Run/Update Tests → Fix test failures if any → Update Docs → Commit & PR.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Ensure all changes are covered by tests and documentation before committing.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Run dotnet test (all must pass)

.cursor/rules/generate-tasks.md (10)

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to docs/rules/**/*.md : Update 'docs/rules/' for analyzer changes.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {docs/rules/**,README.md} : Update docs/rules/ and README.md for any analyzer, code fix, or workflow change

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {src/Analyzers/AnalyzerReleases.Unshipped.md,docs/rules/**} : Update src/Analyzers/AnalyzerReleases.Unshipped.md and add or update documentation in docs/rules/ for each diagnostic

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Reference affected analyzer rule IDs in PR descriptions.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {docs/rules/**,README.md} : Update docs/rules/ and README.md if you add or change any analyzer, code fix, or workflow

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Always check for and follow any new rules in .cursor/rules/, .editorconfig, and .github/copilot-instructions.md before making changes.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {src/Analyzers/*Analyzer.cs,src/CodeFixes/*Fixer.cs,tests/Moq.Analyzers.Test/*AnalyzerTests.cs,tests/Moq.Analyzers.Test/*CodeFixTests.cs} : Use [Description]Analyzer.cs, [Description]Fixer.cs, [Description]AnalyzerTests.cs, [Description]CodeFixTests.cs for new components

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {docs/rules/**,README.md} : Always update documentation for new features, API changes, or workflow/process changes

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {README.md,docs/rules/README.md} : Update README.md and docs/rules/README.md if workflows or rules change

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Summarize all changes in the PR description and cite relevant lines from modified files for clarity.

.cursor/rules/process-task-list.md (17)

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {docs/rules/**,README.md} : Always update documentation for new features, API changes, or workflow/process changes

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to README.md : Update README for significant changes.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to **/*.md : All documentation and markdown reports must pass formatting checks. Use a markdown linter if available.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to **/CONTRIBUTING.md : Update contributing guidelines for workflow changes.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {README.md,docs/rules/README.md} : Update README.md and docs/rules/README.md if workflows or rules change

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {docs/rules/**,README.md} : Update docs/rules/ and README.md for any analyzer, code fix, or workflow change

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to docs/rules/**/*.md : Update 'docs/rules/' for analyzer changes.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {src/Analyzers/AnalyzerReleases.Unshipped.md,docs/rules/**} : Update src/Analyzers/AnalyzerReleases.Unshipped.md and add or update documentation in docs/rules/ for each diagnostic

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {docs/rules/**,README.md} : Update docs/rules/ and README.md if you add or change any analyzer, code fix, or workflow

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Summarize all changes in the PR description and cite relevant lines from modified files for clarity.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: When making changes, follow the workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues if any → Run/Update Tests → Fix test failures if any → Update Docs → Commit & PR.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to .github/workflows/**/*.yml : When making CI/CD changes, test workflows locally, provide validation evidence, update documentation, and consider performance impact.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Read and comply with all .github/instructions/* for edited file types

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .cursor/rules/csharp.mdc:0-0
Timestamp: 2025-07-19T08:09:48.255Z
Learning: Applies to *.{cs,csproj,sln} : Always read and apply the instructions in copilot-instructions.md when working on C# source or project files

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .windsurf/rules/csharp.md:0-0
Timestamp: 2025-07-22T02:59:43.736Z
Learning: Applies to *.{cs,csproj,sln} : Always read and apply the instructions in copilot-instructions.md when working on C# source or project files

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to **/*.{cs} : Run 'dotnet format' and commit all changes before submitting a pull request. PRs with formatting issues will be rejected.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to **/*.{cs} : Run Codacy CLI analysis on all changed files and fix all reported issues before submitting the PR.

.cursor/rules/create-explainer.md (11)

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Always check for and follow any new rules in .cursor/rules/, .editorconfig, and .github/copilot-instructions.md before making changes.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Reference affected analyzer rule IDs in PR descriptions.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: Applies to docs/rules/**/*.md : Update 'docs/rules/' for analyzer changes.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {src/Analyzers/AnalyzerReleases.Unshipped.md,docs/rules/**} : Update src/Analyzers/AnalyzerReleases.Unshipped.md and add or update documentation in docs/rules/ for each diagnostic

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {docs/rules/**,README.md} : Always update documentation for new features, API changes, or workflow/process changes

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {docs/rules/**,README.md} : Update docs/rules/ and README.md for any analyzer, code fix, or workflow change

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {docs/rules/**,README.md} : Update docs/rules/ and README.md if you add or change any analyzer, code fix, or workflow

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Summarize all changes in the PR description and cite relevant lines from modified files for clarity.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: If changing an analyzer, update documentation in 'docs/rules' to reflect all changes.

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-27T02:44:39.596Z
Learning: Applies to {README.md,docs/rules/README.md} : Update README.md and docs/rules/README.md if workflows or rules change

Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-07-27T02:45:02.136Z
Learning: If your PR changes or adds analyzer tests, include a note in the PR description about which Moq versions are targeted and how test data is grouped accordingly.

🪛 LanguageTool
.cursor/rules/generate-tasks.md

[grammar] ~1-~1: Use correct spacing
Context: # Rule: Generating a Task List from an Explainer ## Goal To guide an AI assistant in creati...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~5-~5: Use correct spacing
Context: ...k list should guide a developer through implementation. ## Output - Format: Markdown (.md) -...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~10-~10: There might be a mistake here.
Context: ....md) - Location: GitHub issues in rjmurillo/Moq.Analyzers repository - Title: `Task...

(QB_NEW_EN_OTHER)


[grammar] ~11-~11: Use correct spacing
Context: ...sks for [explainer-issue-title](e.g.,Tasks for Explainer Expand LINQ Coverage`) Link the Tasks issue to the Explainer is...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~13-~13: Use correct spacing
Context: ...he Explainer issue in GitHub using your MCP. ## Process 1. **Receive Explainer/PRD Refe...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~17-~17: There might be a mistake here.
Context: ...I to a specific Explainer or PRD GitHub issue 2. Analyze Explainer/PRD: The AI uses Git...

(QB_NEW_EN_OTHER)


[grammar] ~19-~19: Ensure spelling is correct
Context: ...xisting codebase to understand existing infrastructre, architectural patterns and conventions...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~19-~19: Add a comma
Context: ...d existing infrastructre, architectural patterns and conventions. Also, identify any exi...

(QB_NEW_EN_OTHER_ERROR_IDS_22)


[grammar] ~20-~20: Consider adjusting word choice based on regional variation
Context: ...ired to implement the feature. Use your judgement on how many high-level tasks to use. It...

(QB_NEW_EN_OTHER_ERROR_IDS_26)


[grammar] ~20-~20: Use hyphens correctly
Context: ...e user in the specified format (without sub-tasks yet). Inform the user: "I have gen...

(QB_NEW_EN_OTHER_ERROR_IDS_29)


[grammar] ~20-~20: Use colons correctly
Context: ...mat (without sub-tasks yet). Inform the user: "I have generated the high-level tasks bas...

(QB_NEW_EN_OTHER_ERROR_IDS_30)


[grammar] ~20-~20: There might be a problem here.
Context: ...he Explainer/PRD. Ready to generate the sub-tasks? Respond with 'Go' to proceed." 5. **Wai...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~21-~21: There might be a mistake here.
Context: ...nd wait for the user to respond with "Go". 6. Phase 2: Generate Sub-Tasks: Onc...

(QB_NEW_EN_OTHER)


[grammar] ~25-~25: Use correct spacing
Context: ...t of GitHub issues linked to the parent tasks. ## Output Format The generated task list _...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~27-~27: Use correct spacing
Context: ... linked to the parent tasks. ## Output Format The generated task list must follow th...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~29-~29: Use correct spacing
Context: ...ted to the specific Explainer/PRD being processed. ### GitHub Issue Structure Guidance - The p...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~31-~31: Use correct spacing
Context: ... processed. ### GitHub Issue Structure Guidance - The parent task list should be created a...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~38-~38: There might be a mistake here.
Context: ...clude a link to the parent issue at the top, and may include its own detailed check...

(QB_NEW_EN_OTHER)


[grammar] ~38-~38: Use correct spacing
Context: ...y include its own detailed checklist if needed. #### Example Parent Issue Checklist ```markd...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~40-~40: Use correct spacing
Context: ...t if needed. #### Example Parent Issue Checklist markdown - [ ] [Implement Core Analyzer Logic](https://github.com/org/repo/issues/456) - [ ] [Add Test Coverage](https://github.com/org/repo/issues/457) - [ ] [Update Documentation](https://github.com/org/repo/issues/458) #### Example Sub-task Issue Header ```markdo...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~48-~48: Use correct spacing
Context: ...s/458) #### Example Sub-task Issue Header markdown Parent: #123 ## Sub-task Details - [ ] Sub-step 1 - [ ] Sub-step 2 markdown ## Relevant Files - src/Feature/FeatureAnalyzer.cs - Main analyzer implementation for the feature described in the explainer/PRD. - tests/Feature/FeatureAnalyzerTests.cs - Unit tests for the analyzer logic. - docs/rules/FeatureRule.md - Documentation for the new or updated analyzer rule. ### Notes When editing files, follow the guidance at .github/instructions/README.md to determine appropriate instructions for specific files. ## Tasks - [ ] Implement Core Analyzer Logic - [ ] Add Test Coverage - [ ] Update Documentation ``` ## Interaction Model The process explicitl...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~77-~77: Use correct spacing
Context: ...rg/repo/issues/458) ``` ## Interaction Model The process explicitly requires a pause ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~79-~79: Use correct spacing
Context: ...th user expectations before diving into details. ## Target Audience Assume the primary read...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~81-~81: Use correct spacing
Context: ... before diving into details. ## Target Audience Assume the primary reader of the task li...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

.cursor/rules/process-task-list.md

[grammar] ~1-~1: Use correct spacing
Context: # Task List Management Guidelines for managing task lists in Gi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~3-~3: Use correct spacing
Context: ...les to track progress on completing an Explainer/PRD ## Task Implementation - **One sub-task at...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~5-~5: Use correct spacing
Context: ...on completing an Explainer/PRD ## Task Implementation - One sub-task at a time: Do NOT sta...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~11-~11: There might be a mistake here.
Context: ...First**: Run the full test suite (e.g., dotnet test --settings ./build/targets/tests/test.runsettings) - Only if all tests pass: Stage changes ...

(QB_NEW_EN_OTHER)


[grammar] ~12-~12: There might be a mistake here.
Context: ...nly if all tests pass**: Stage changes (git add .) - Clean up: Remove any temporary files a...

(QB_NEW_EN_OTHER)


[grammar] ~13-~13: There might be a mistake here.
Context: ...mporary files and temporary code before committing - Commit: Use a descriptive commit messa...

(QB_NEW_EN_OTHER)


[grammar] ~15-~15: There might be a mistake here.
Context: ...t format (feat:, fix:, refactor:, etc.) - Summarizes what was accomplished in the ...

(QB_NEW_EN_OTHER)


[grammar] ~19-~19: Use correct spacing
Context: ...single-line command using -m flags**, e.g.: text git commit -m "feat: add payment validation logic" -m "- Validates card type and expiry" -m "- Adds unit tests for edge cases" -m "Related to #123 in Explainer" 3. Once all the subtasks are marked complet...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~28-~28: Use correct spacing
Context: ... for the user's go‑ahead. ## Task List Maintenance 1. Update the task list as you work: -...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~32-~32: Use correct spacing
Context: ...erge. Use your GitHub MCP to accomplish this. 2. Maintain the "Relevant Files" section:...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~38-~38: Use correct spacing
Context: ...line description of its purpose. ## AI Instructions When working with task lists, the AI mus...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~40-~40: Use correct spacing
Context: ...s When working with task lists, the AI must: 1. Regularly update the task list file afte...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~44-~44: Ensure spelling is correct
Context: ...ion protocol: - Mark each finished sub‑task [x]. - Mark the parent task ...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~48-~48: Ensure spelling is correct
Context: ...e. 5. Before starting work, check which sub‑task is next. 6. After implementing a sub‑ta...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~49-~49: Ensure spelling is correct
Context: ...b‑task is next. 6. After implementing a sub‑task, update the file and then pause for use...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

.cursor/rules/create-explainer.md

[grammar] ~1-~1: Use correct spacing
Context: ...iner or a Product Requirements Document (PRD) ## Goal To guide an AI assistant in creati...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~5-~5: Use correct spacing
Context: ...veloper to understand and implement the feature. ## Process 1. Receive Initial Prompt: ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~12-~12: Use correct spacing
Context: ...Analyzers` repository using your GitHub MCP. ## Clarifying Questions (Examples) The AI ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~14-~14: Use correct spacing
Context: ...ur GitHub MCP. ## Clarifying Questions (Examples) The AI should adapt its questions based ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~16-~16: There might be a mistake here.
Context: ...should adapt its questions based on the prompt, but must always: - Present all clarif...

(QB_NEW_EN_OTHER)


[grammar] ~16-~16: There might be a mistake here.
Context: ...questions based on the prompt, but must always: - Present all clarifying questions as enu...

(QB_NEW_EN_OTHER)


[grammar] ~20-~20: Use correct spacing
Context: ...lag it and ask for clarification before proceeding. Here are some common areas to explore: ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~22-~22: There might be a mistake here.
Context: ...ceeding. Here are some common areas to explore: - Problem/Goal: "What problem does this...

(QB_NEW_EN_OTHER)


[grammar] ~27-~27: There might be a mistake here.
Context: ..., I want to [perform an action] so that [benefit].)" - Structure with INVEST: Does each ...

(QB_NEW_EN_OTHER)


[grammar] ~33-~33: Use correct spacing
Context: ...dge cases or error conditions we should consider?" ## Explainer Structure The generated expla...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~35-~35: Use correct spacing
Context: ...ions we should consider?" ## Explainer Structure The generated explainer should include t...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~37-~37: There might be a mistake here.
Context: ... explainer should include the following sections: 1. Introduction/Overview: Briefly descri...

(QB_NEW_EN_OTHER)


[grammar] ~43-~43: There might be a mistake here.
Context: ...em must allow users to upload a profile picture."). Number these requirements. 6. **Desi...

(QB_NEW_EN_OTHER)


[grammar] ~46-~46: There might be a mistake here.
Context: ... (e.g., "Increase user engagement by 10%", "Reduce support tickets related to X")....

(QB_NEW_EN_OTHER)


[grammar] ~47-~47: There might be a problem here.
Context: ...s or assumptions, explicitly state "None". ## Target Audience Assume the primary read...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~49-~49: Use correct spacing
Context: ...ns, explicitly state "None". ## Target Audience Assume the primary reader of the Explain...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~51-~51: Use correct spacing
Context: ...derstand the feature's purpose and core logic. ## Output - Format: Markdown (.md) -...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~57-~57: Use correct spacing
Context: ...rjmurillo/Moq.Analyzersrepository - **Title:**Explainer: [feature-name]` ## Final instructions 1. Do NOT start impl...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~59-~59: Use correct spacing
Context: ...* Explainer: [feature-name] ## Final instructions 1. Do NOT start implementing the Explainer ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~61-~61: There might be a mistake here.
Context: ...tions 1. Do NOT start implementing the Explainer 2. Make sure to ask the user clarifying que...

(QB_NEW_EN_OTHER)


[grammar] ~62-~62: There might be a mistake here.
Context: ...2. Make sure to ask the user clarifying questions 3. Take the user's answers to the clarifyin...

(QB_NEW_EN_OTHER)


[grammar] ~63-~63: There might be a mistake here.
Context: ...he clarifying questions and improve the Explainer --- ## Example Explainer (Generic) ```markdown...

(QB_NEW_EN_OTHER)


[grammar] ~67-~67: Use correct spacing
Context: ...he Explainer --- ## Example Explainer (Generic) markdown # Explainer: Feature Name ## Introduction/Overview Briefly describe the feature and the problem it solves. State the goal. ## Goals - List specific, measurable objectives for this feature. ## Non-Goals (Out of Scope) - List what is explicitly not included in this feature. ## User Stories - As a [user type], I want to [do something] so that [benefit]. - As a [user type], I want to [do something else] so that [benefit]. ## Functional Requirements 1. The system must allow users to do X. 2. The system must validate Y before Z. ## Design Considerations (Optional) - Link to mockups or describe UI/UX requirements. ## Technical Considerations (Optional) - List known technical constraints, dependencies, or suggestions. ## Success Metrics - How will success be measured? (e.g., "Increase engagement by 10%", "Reduce support tickets related to X") ## Open Questions - List any remaining questions, areas needing clarification, or assumptions. If none, state "None".

(QB_NEW_EN_OTHER_ERROR_IDS_5)

🪛 markdownlint-cli2 (0.17.2)
.cursor/rules/process-task-list.md

11-11: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


12-12: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


13-13: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


14-14: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


15-15: Unordered list indentation
Expected: 4; Actual: 6

(MD007, ul-indent)


16-16: Unordered list indentation
Expected: 4; Actual: 6

(MD007, ul-indent)


17-17: Unordered list indentation
Expected: 4; Actual: 6

(MD007, ul-indent)


18-18: Unordered list indentation
Expected: 4; Actual: 6

(MD007, ul-indent)


19-19: Unordered list indentation
Expected: 4; Actual: 6

(MD007, ul-indent)


25-25: Ordered list item prefix
Expected: 1; Actual: 3; Style: 1/1/1

(MD029, ol-prefix)

⏰ Context from checks skipped due to timeout of 900000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build (windows-11-arm)

Comment thread .cursor/rules/create-explainer.md
Comment thread .cursor/rules/generate-tasks.md Outdated
Comment thread .cursor/rules/process-task-list.md
Comment thread .github/instructions/project.instructions.md
Comment thread CONTRIBUTING.md
rjmurillo and others added 5 commits July 27, 2025 11:56
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@rjmurillo
Copy link
Copy Markdown
Owner Author

Prompt (using .github/chatmodes/Best Mode.chatmode.md with GPT-4.1 model in VS Code)

#file:create-explainer.md Evaluate the current code coverage from ./artifacts/TestResults/coverage/Cobertura.xml and generate an explainer to improve the coverage for the Moq.Analyzers assembly to 100%

Response:

Before generating the explainer, I need to ask clarifying questions to ensure the document is actionable and clear for a junior developer. Please answer the following:

What is the main motivation for achieving 100% code coverage for the Moq.Analyzers assembly? (e.g., compliance, quality, maintainability, etc.)
Who is the primary audience for this effort? (e.g., maintainers, contributors, external users)
Are there any parts of the codebase that should be excluded from coverage (e.g., generated code, debug-only code, obsolete features)?
Should the focus be on line coverage, branch coverage, or both?
Are there specific user stories or scenarios you want to ensure are covered by tests?
What are the acceptance criteria for "100% coverage"? (e.g., as reported by Cobertura, or another tool?)
Are there any existing guidelines or patterns for writing tests in this repository that should be followed?
Are there any known challenges or blockers (e.g., hard-to-test code, dependencies) that should be documented?
Should the explainer include recommendations for refactoring code to improve testability, or only focus on adding tests?
Are there any deadlines or milestones for achieving this goal?
Please answer these questions so I can generate a complete and useful explainer.

Answer:

  1. quality and maintainability. Writing Roslyn analyzers is complicated and requires the knowledge of a .NET compiler engineer. This makes it difficult to approach for people that don't work on them day to day, and very difficult for AI agents.
  2. maintainers and contributors
  3. none
  4. both, but within reason. We want to test interesting areas for sure. There's lots of lines uncovered because of early out checks. We add them because the ecosystem adds them (so they're presumably necessary to avoid runtime crashes). However, they may be impractical to test for.
  5. all? use your judgement
  6. Coverage as reported by Cobertura via dotnet test --settings ./build/targets/tests/test.runsettings
  7. Yes, they are included in .github/instructions/ and CONTRIBUTING.md
  8. There is hard to test code like compiler error conditions, etc. See answer to Rule 1200 message not helpful when developer setup includes async result #4 above
  9. Refactoring to improve testability is important. We want to use tests as leverage. We have https://github.com/Explainer: What is CRAP and Why Reduce It? #627, https://github.com/Add unit tests for PerfDiff error handling & edge cases #600, https://github.com/Add PerfDiff integration tests & sample test data #601, and https://github.com/Explainer: Refactor to IOperation #118 to help with that.
  10. No deadlilnes. We will opportunistically work on the feature through successive milestones.

Created #639

I then used the second prompt to generate the task list:

Prompt:

#file:generate-tasks.md Please generate tasks for explainer https://github.com//issues/639

Created #645

@rjmurillo rjmurillo marked this pull request as ready for review July 27, 2025 19:15
Copilot AI review requested due to automatic review settings July 27, 2025 19:15
@rjmurillo rjmurillo merged commit e69d1a7 into main Jul 27, 2025
21 of 22 checks passed
@rjmurillo rjmurillo deleted the docs/ai-tasks branch July 27, 2025 19:16
@rjmurillo rjmurillo added this to the vNext milestone Jul 27, 2025
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds comprehensive documentation for AI agents to effectively create and manage software project workflows. It establishes standardized processes for generating Explainers/PRDs, breaking them down into actionable task lists, and implementing them consistently.

  • Standardizes build and test commands to use pedantic mode and custom test settings across all documentation
  • Introduces structured processes for creating Explainers/PRDs with clarifying questions and validation requirements
  • Establishes task list management protocols with completion criteria and commit procedures

Reviewed Changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
CONTRIBUTING.md Updated build/test commands to use pedantic mode and test settings; added formatting improvements
.github/instructions/project.instructions.md Updated build/test commands to match CONTRIBUTING.md standards
.github/copilot-instructions.md Added comprehensive task list management protocol for AI agents
.cursor/rules/process-task-list.md New file defining task completion protocols and progress tracking
.cursor/rules/generate-tasks.md New file for generating structured task lists from Explainers/PRDs
.cursor/rules/create-explainer.md New file for creating structured Explainers/PRDs with validation

Comment on lines +7 to +9
- **One sub-task at a time:** Do **NOT** start the next sub‑task until you ask the user for permission and they say "yes" or "y"
- **Completion protocol:**
1. When you finish a **sub‑task**, immediately mark it as completed by changing `[ ]` to `[x]`.
Copy link

Copilot AI Jul 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent hyphen character used. Line uses en-dash (‑) instead of standard hyphen (-) like other lines in the file.

Suggested change
- **One sub-task at a time:** Do **NOT** start the next subtask until you ask the user for permission and they say "yes" or "y"
- **Completion protocol:**
1. When you finish a **subtask**, immediately mark it as completed by changing `[ ]` to `[x]`.
- **One sub-task at a time:** Do **NOT** start the next sub-task until you ask the user for permission and they say "yes" or "y"
- **Completion protocol:**
1. When you finish a **sub-task**, immediately mark it as completed by changing `[ ]` to `[x]`.

Copilot uses AI. Check for mistakes.

- **One sub-task at a time:** Do **NOT** start the next sub‑task until you ask the user for permission and they say "yes" or "y"
- **Completion protocol:**
1. When you finish a **sub‑task**, immediately mark it as completed by changing `[ ]` to `[x]`.
Copy link

Copilot AI Jul 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent hyphen character used. Line uses en-dash (‑) instead of standard hyphen (-) like other lines in the file.

Suggested change
1. When you finish a **subtask**, immediately mark it as completed by changing `[ ]` to `[x]`.
1. When you finish a **sub-task**, immediately mark it as completed by changing `[ ]` to `[x]`.

Copilot uses AI. Check for mistakes.
```

3. Once all the subtasks are marked completed and changes have been committed, mark the **parent task** as completed.
- Stop after each sub‑task and wait for the user's go‑ahead.
Copy link

Copilot AI Jul 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent hyphen character used. Line uses en-dash (‑) instead of standard hyphen (-) like other lines in the file.

Suggested change
- Stop after each subtask and wait for the user's goahead.
- Stop after each sub-task and wait for the user's go-ahead.

Copilot uses AI. Check for mistakes.

2. **Maintain the "Relevant Files" section:**
- List every file created or modified.
- Give each file a one‑line description of its purpose.
Copy link

Copilot AI Jul 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent hyphen character used. Line uses en-dash (‑) instead of standard hyphen (-) like other lines in the file.

Suggested change
- Give each file a oneline description of its purpose.
- Give each file a one-line description of its purpose.

Copilot uses AI. Check for mistakes.

1. Regularly update the task list file after finishing any significant work.
2. Follow the completion protocol:
- Mark each finished **sub‑task** `[x]`.
Copy link

Copilot AI Jul 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent hyphen character used. Line uses en-dash (‑) instead of standard hyphen (-) like other lines in the file.

Suggested change
- Mark each finished **subtask** `[x]`.
- Mark each finished **sub-task** `[x]`.

Copilot uses AI. Check for mistakes.
- Mark the **parent task** `[x]` once **all** its subtasks are `[x]`.
3. Add newly discovered tasks.
4. Keep "Relevant Files" accurate and up to date.
5. Before starting work, check which sub‑task is next.
Copy link

Copilot AI Jul 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent hyphen character used. Line uses en-dash (‑) instead of standard hyphen (-) like other lines in the file.

Suggested change
5. Before starting work, check which subtask is next.
5. Before starting work, check which sub-task is next.

Copilot uses AI. Check for mistakes.
3. Add newly discovered tasks.
4. Keep "Relevant Files" accurate and up to date.
5. Before starting work, check which sub‑task is next.
6. After implementing a sub‑task, update the file and then pause for user approval.
Copy link

Copilot AI Jul 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent hyphen character used. Line uses en-dash (‑) instead of standard hyphen (-) like other lines in the file.

Suggested change
6. After implementing a subtask, update the file and then pause for user approval.
6. After implementing a sub-task, update the file and then pause for user approval.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants