From 27342ba13a6ddcd77ecddd237274e1ca6cfd6172 Mon Sep 17 00:00:00 2001
From: Piotr Zajac
Date: Sun, 12 Apr 2026 23:34:45 +0200
Subject: [PATCH] docs(backlog): Update backlog
---
...1 - Add-PR-template-and-issue-templates.md | 0
...ages-across-all-projects-in-a-single-PR.md | 0
.../task-11 - Fix-snyk-workflow.md | 0
...liminate-intermediate-array-allocations.md | 0
.../task-2 - Add-CONTRIBUTING.md.md | 0
.../task-3 - Enforce-Conventional-Commits.md | 0
.../task-4 - Add-AI-powered-PR-review.md | 0
...messages-to-follow-Conventional-Commits.md | 0
...ons-workflow-to-use-dotnet-tool-restore.md | 0
...pgrade-test-projects-from-net8-to-net10.md | 45 +++++++++++++
.../tasks/task-14 - Prepare-documentation.md | 65 +++++++++++++++++++
AGENTS.md | 2 +-
12 files changed, 111 insertions(+), 1 deletion(-)
rename .backlog/{tasks => completed}/task-1 - Add-PR-template-and-issue-templates.md (100%)
rename .backlog/{tasks => completed}/task-10 - Ensure-dependabot-updates-NuGet-packages-across-all-projects-in-a-single-PR.md (100%)
rename .backlog/{tasks => completed}/task-11 - Fix-snyk-workflow.md (100%)
rename .backlog/{tasks => completed}/task-12 - Eliminate-intermediate-array-allocations.md (100%)
rename .backlog/{tasks => completed}/task-2 - Add-CONTRIBUTING.md.md (100%)
rename .backlog/{tasks => completed}/task-3 - Enforce-Conventional-Commits.md (100%)
rename .backlog/{tasks => completed}/task-4 - Add-AI-powered-PR-review.md (100%)
rename .backlog/{tasks => completed}/task-8 - Fix-Dependabot-commit-messages-to-follow-Conventional-Commits.md (100%)
rename .backlog/{tasks => completed}/task-9 - Fix-test-mutations-workflow-to-use-dotnet-tool-restore.md (100%)
create mode 100644 .backlog/tasks/task-13 - Upgrade-test-projects-from-net8-to-net10.md
create mode 100644 .backlog/tasks/task-14 - Prepare-documentation.md
diff --git a/.backlog/tasks/task-1 - Add-PR-template-and-issue-templates.md b/.backlog/completed/task-1 - Add-PR-template-and-issue-templates.md
similarity index 100%
rename from .backlog/tasks/task-1 - Add-PR-template-and-issue-templates.md
rename to .backlog/completed/task-1 - Add-PR-template-and-issue-templates.md
diff --git a/.backlog/tasks/task-10 - Ensure-dependabot-updates-NuGet-packages-across-all-projects-in-a-single-PR.md b/.backlog/completed/task-10 - Ensure-dependabot-updates-NuGet-packages-across-all-projects-in-a-single-PR.md
similarity index 100%
rename from .backlog/tasks/task-10 - Ensure-dependabot-updates-NuGet-packages-across-all-projects-in-a-single-PR.md
rename to .backlog/completed/task-10 - Ensure-dependabot-updates-NuGet-packages-across-all-projects-in-a-single-PR.md
diff --git a/.backlog/tasks/task-11 - Fix-snyk-workflow.md b/.backlog/completed/task-11 - Fix-snyk-workflow.md
similarity index 100%
rename from .backlog/tasks/task-11 - Fix-snyk-workflow.md
rename to .backlog/completed/task-11 - Fix-snyk-workflow.md
diff --git a/.backlog/tasks/task-12 - Eliminate-intermediate-array-allocations.md b/.backlog/completed/task-12 - Eliminate-intermediate-array-allocations.md
similarity index 100%
rename from .backlog/tasks/task-12 - Eliminate-intermediate-array-allocations.md
rename to .backlog/completed/task-12 - Eliminate-intermediate-array-allocations.md
diff --git a/.backlog/tasks/task-2 - Add-CONTRIBUTING.md.md b/.backlog/completed/task-2 - Add-CONTRIBUTING.md.md
similarity index 100%
rename from .backlog/tasks/task-2 - Add-CONTRIBUTING.md.md
rename to .backlog/completed/task-2 - Add-CONTRIBUTING.md.md
diff --git a/.backlog/tasks/task-3 - Enforce-Conventional-Commits.md b/.backlog/completed/task-3 - Enforce-Conventional-Commits.md
similarity index 100%
rename from .backlog/tasks/task-3 - Enforce-Conventional-Commits.md
rename to .backlog/completed/task-3 - Enforce-Conventional-Commits.md
diff --git a/.backlog/tasks/task-4 - Add-AI-powered-PR-review.md b/.backlog/completed/task-4 - Add-AI-powered-PR-review.md
similarity index 100%
rename from .backlog/tasks/task-4 - Add-AI-powered-PR-review.md
rename to .backlog/completed/task-4 - Add-AI-powered-PR-review.md
diff --git a/.backlog/tasks/task-8 - Fix-Dependabot-commit-messages-to-follow-Conventional-Commits.md b/.backlog/completed/task-8 - Fix-Dependabot-commit-messages-to-follow-Conventional-Commits.md
similarity index 100%
rename from .backlog/tasks/task-8 - Fix-Dependabot-commit-messages-to-follow-Conventional-Commits.md
rename to .backlog/completed/task-8 - Fix-Dependabot-commit-messages-to-follow-Conventional-Commits.md
diff --git a/.backlog/tasks/task-9 - Fix-test-mutations-workflow-to-use-dotnet-tool-restore.md b/.backlog/completed/task-9 - Fix-test-mutations-workflow-to-use-dotnet-tool-restore.md
similarity index 100%
rename from .backlog/tasks/task-9 - Fix-test-mutations-workflow-to-use-dotnet-tool-restore.md
rename to .backlog/completed/task-9 - Fix-test-mutations-workflow-to-use-dotnet-tool-restore.md
diff --git a/.backlog/tasks/task-13 - Upgrade-test-projects-from-net8-to-net10.md b/.backlog/tasks/task-13 - Upgrade-test-projects-from-net8-to-net10.md
new file mode 100644
index 00000000..2323d8e0
--- /dev/null
+++ b/.backlog/tasks/task-13 - Upgrade-test-projects-from-net8-to-net10.md
@@ -0,0 +1,45 @@
+---
+id: TASK-13
+title: 'Upgrade test projects from net8.0 to net10.0'
+status: To Do
+assignee: []
+created_date: '2026-04-12'
+labels:
+ - feature
+dependencies: []
+priority: low
+---
+
+## Description
+
+
+Replace `net8.0` with `net10.0` in all four test projects. .NET 10 is LTS (supported until November 2028), making it the right long-term target. .NET 9 STS reaches end of support in May 2026 and is not worth targeting. .NET 8 LTS ends November 2026. Library projects already target `netstandard2.0`/`netstandard2.1` which covers all modern .NET versions — no change is needed there.
+
+**Current state:**
+
+- Library projects (Core, AutoMoq, AutoFakeItEasy, AutoNSubstitute): `netstandard2.0;netstandard2.1` + `net472;net48` on Windows
+- Test projects (all four `*.Tests`): `net8.0` + `net472;net48` on Windows
+
+**Proposed change:**
+
+- Replace `net8.0` with `net10.0` in all four test projects
+- Verify all dependencies support `net10.0` (AutoFixture, xUnit, Moq, FakeItEasy, NSubstitute, Microsoft.NET.Test.Sdk)
+- Update CI (`windows-latest` runner already supports .NET 10)
+- Update `AGENTS.md` Target Frameworks table
+
+
+## Acceptance Criteria
+
+- [ ] #1 `net10.0` replaces `net8.0` in the `` in all four test `.csproj` files
+- [ ] #2 All tests pass across `net10.0`, `net472`, and `net48`
+- [ ] #3 CI pipeline passes without errors on all framework slices
+- [ ] #4 `AGENTS.md` Target Frameworks table is updated to reflect `net10.0` for test projects
+
+
+## Files Affected
+
+- `src/Objectivity.AutoFixture.XUnit2.Core.Tests/Objectivity.AutoFixture.XUnit2.Core.Tests.csproj`
+- `src/Objectivity.AutoFixture.XUnit2.AutoMoq.Tests/Objectivity.AutoFixture.XUnit2.AutoMoq.Tests.csproj`
+- `src/Objectivity.AutoFixture.XUnit2.AutoFakeItEasy.Tests/Objectivity.AutoFixture.XUnit2.AutoFakeItEasy.Tests.csproj`
+- `src/Objectivity.AutoFixture.XUnit2.AutoNSubstitute.Tests/Objectivity.AutoFixture.XUnit2.AutoNSubstitute.Tests.csproj`
+- `AGENTS.md` (Target Frameworks table)
diff --git a/.backlog/tasks/task-14 - Prepare-documentation.md b/.backlog/tasks/task-14 - Prepare-documentation.md
new file mode 100644
index 00000000..fa69a5fb
--- /dev/null
+++ b/.backlog/tasks/task-14 - Prepare-documentation.md
@@ -0,0 +1,65 @@
+---
+id: TASK-14
+title: 'feat(docs): Migrate README into structured /docs site served via GitHub Pages'
+status: To Do
+assignee: []
+created_date: '2026-04-12'
+labels:
+ - doc
+dependencies: []
+priority: low
+---
+
+## Description
+
+
+All documentation currently lives in `README.md` — a single flat file covering installation, all attributes, data filtering attributes, and tips & tricks. As the library grows this becomes hard to navigate and limits discoverability.
+
+**Goal:** Migrate `README.md` content into a structured documentation site under a `/docs` folder, served via GitHub Pages with a dedicated GitHub Actions workflow.
+
+**Phase 1 — Investigation (required before implementation):**
+Evaluate and select a documentation tool. Candidates:
+
+| Tool | Runtime | Notes |
+| --- | --- | --- |
+| [MkDocs + Material](https://squidfunk.github.io/mkdocs-material/) | Python | Markdown-native, mature, excellent search, widely used in OSS |
+| [VitePress](https://vitepress.dev/) | Node.js | Vue-powered, fast, clean default theme |
+| [Docusaurus](https://docusaurus.io/) | Node.js | React-powered, more opinionated, better for larger doc sets |
+
+Selection criteria: Markdown-native, GitHub Pages compatible, minimal config, good built-in search, low maintenance burden, minimal CI runtime dependency.
+
+**Phase 2 — Implementation:**
+
+1. **Create `/docs` folder** — break `README.md` content into logical pages, e.g.:
+ - Getting started (installation, quick example)
+ - Attributes: `AutoMockData`, `InlineAutoMockData`, `MemberAutoMockData`
+ - Parameter attributes: `Frozen`, `IgnoreVirtualMembers`, `CustomizeWith`
+ - Data filtering attributes: `Except`, `PickFromRange`, `PickFromValues`, `PickNegative`
+ - Tips & tricks
+2. **Add tool config** (e.g. `mkdocs.yml`, `vitepress.config.ts`) at the repo root or `/docs`.
+3. **Add GitHub Actions workflow** under `.github/workflows/docs.yml` — build and deploy to GitHub Pages on push to `master` using `actions/upload-pages-artifact` + `actions/deploy-pages`. **Requires explicit approval before implementation** (per `AGENTS.md`).
+4. **Slim down `README.md`** — keep project summary, badges, and a link to the full docs site.
+
+**Constraints:**
+
+- Docs build workflow can run on `ubuntu-latest` (CI currently runs on `windows-latest` for .NET Framework — docs are independent).
+- Changes to `.github/workflows/` require explicit approval before implementation.
+
+
+
+## Acceptance Criteria
+
+
+- [ ] #1 A documentation tool is selected and justified based on the evaluation criteria above
+- [ ] #2 `/docs` folder exists with content migrated from `README.md` into logical pages
+- [ ] #3 A GitHub Actions workflow builds and deploys the site to GitHub Pages on push to `master`
+- [ ] #4 GitHub Pages is enabled on the repository and the site is publicly accessible
+- [ ] #5 `README.md` is slimmed down to a project summary with a link to the docs site
+
+
+## Files Affected
+
+- `/docs/` (new folder)
+- `README.md` (slimmed down)
+- `.github/workflows/docs.yml` (new — requires explicit approval)
+- Tool-specific config file at repo root (e.g. `mkdocs.yml`, `vitepress.config.ts`)
diff --git a/AGENTS.md b/AGENTS.md
index ccbd8b95..0a4aa497 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -441,7 +441,7 @@ These rules apply to all AI coding assistants working in this repository.
### Before Making Changes
- **Propose before acting** on any non-trivial change (new attribute, refactor, CI change). Describe the approach and wait for approval.
-- **Suggest creating a backlog task** if one does not already exist before implementation begins. Search the backlog first to avoid duplicates.
+- **Suggest creating a backlog task** if one does not already exist before implementation begins. Search the backlog first to avoid duplicates. Use short, plain-English titles (e.g. "Prepare documentation", "Upgrade test projects to net10.0") — do not apply Conventional Commits prefixes to task titles.
- **Suggest a branch checkout** for any non-trivial change before implementation begins. Use the Conventional Commits type as a prefix and a short kebab-case description, e.g. `git checkout -b fix/enumerable-extensions-allocation`. Common prefixes: `feat/`, `fix/`, `refactor/`, `chore/`, `ci/`, `docs/`.
- **Prefer `dotnet build` over reading files** to verify correctness — the analyser stack catches style and correctness issues that are hard to spot by inspection alone.