You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Browse filesBrowse the repository at this point in the historyBrowse files
authored
Introduce IFileContainer for enhanced zip content assertions (#54)
* Add IFileContainer abstraction for zip content assertions
Introduce IFileContainer (with DirectoryFileContainer and ZipFileContainer
implementations) so that the full suite of content assertions (text, xml,
yaml, json, html, pdf, and nested zip) can be applied to entries inside a
zip archive, recursively.
Key changes:
- New IContext interface and ScopedContext wrapper for breadcrumb error messages
- New IFileContainer interface with Glob(), Size(), Open(), and DisplayName
- DirectoryFileContainer wraps a real filesystem directory
- ZipFileContainer wraps a ZipArchive (from path or stream, enabling zip-in-zip)
- All 7 content asserters updated to Run(IContext, IFileContainer, string entryPath)
- FileAssertFile.Run() unified to take IFileContainer (DirectoryInfoWrapper retired)
- FileAssertTest constructs DirectoryFileContainer for top-level filesystem runs
- FileAssertZipAssert rewritten: entries now use FileAssertFileData (full parity),
opens ZipFileContainer per entry, scopes context with breadcrumb prefix
- FileAssertZipEntryData deleted; FileAssertZipData.Entries reuses FileAssertFileData
- 291 tests across net8/net9/net10 (19 new zip content tests, 2 new modeling tests,
12 new container unit tests, 2 new scoped context tests, 5 new integration tests)
- Full companion artifact sweep: requirements, design, verification docs, review sets,
README, and user guide all updated
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix formal review findings from IFileContainer feature branch
* Add OTS design docs to YamlDotNet, PdfPig, HtmlAgilityPack, FileSystemGlobbing review sets
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix second round of formal review findings
* Fix third round of formal review findings
- Add malformed-HTML lenient-parse test for HtmlAgilityPack OTS
- Add HTML and PDF zip-entry assertion tests
- Add multi-page PDF boundary test and PdfMetadataRule negative tests
- Add YamlAssert.Create() validation (empty queries, no-op, contradictory min/max)
- Split compound FileAssertFile Count/Size requirements into atomic requirements
- Fix compound OTS parent requirements (ReviewMark, VersionMark, PdfPig)
- Restructure OTS design docs to Purpose/Features Used/Integration Pattern (ReviewMark, VersionMark, xUnit)
- Fix OTS-ReviewMark design: document URL-based evidence source and network dependency
- Add Features Used and Integration Pattern to OTS-VersionMark design
- Fix xUnit 'or equivalent' ambiguity and PrivateAssets claim
- Fix AllRequirements traceability: FileTypeParsing, FileTypeParseError, QueryAssertions, JUnit
- Add system-level design and verification for --depth flag
- Complete HtmlAssert design doc tables
- Add JUnit configuration verification scenario
- Fix DirectoryFileContainer temp path description
- Fix introduction.md References section to use verbal references
Tests: 326/326 passing
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add 'enation' to cspell word list
Used in multi-page PDF boundary tests to verify the page separator
prevents cross-page token merging (concat + enation).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Remove flawed LockedFile test and FileTypeReadError requirement
File locking via FileShare.None is not reliably enforced on Linux.
The IO error path is already covered by per-asserter IOError tests.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix duplicated breadcrumb in ZipAssert error messages
ZipFileContainer.GetDisplayPath already builds the full breadcrumb
path (e.g. 'outer.zip > entry.txt'). The additional context.WithPrefix
call in FileAssertZipAssert.Run duplicated it, producing messages like
'outer.zip > File ''outer.zip > entry.txt'' ...'.
Remove WithPrefix from ZipAssert.Run and rely solely on GetDisplayPath.
Also tighten the breadcrumb test to assert the zip name appears exactly
once in the error message, so this cannot regress silently.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix PR review findings: silent-pass, backslash patterns, misc
- Remove entries: alias (never shipped, no backward compat needed)
- Validate zip: block requires at least one files: entry; null/empty
now throws InvalidOperationException instead of silently passing
- Normalize backslash separators in glob patterns before matching
so sub\*.txt works against forward-slash normalized entry paths
- Add tests: NullFiles/EmptyFiles throw, BackslashPattern matches,
invalid YAML throws, selftest scenario name corrected
Tests: 329/329 passing
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix MultiRuntime reqstream filter prefix (net8.0 not dotnet8.x)
The build job produces TRX files named 'macos-latest_net8.0_*.trx'.
ReqStream derives the source filter from the TRX filename, so the
correct prefix is 'net8.0@', not 'dotnet8.x@'.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Malcolm Nixon <Malcolm.Nixon@hiarc.inc>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Developer Agent <agent@dema.local>
description: Planning agent that investigates the codebase, develops a verified implementation plan, and identifies all companion artifact deliverables.
4
+
user-invocable: true
5
+
---
6
+
7
+
# Planning Agent
8
+
9
+
Investigate the codebase and produce a verified implementation plan with all
10
+
companion artifact deliverables.
11
+
12
+
## Step 1 — Load Standards
13
+
14
+
Read the relevant standards from `.github/standards/` using the selection matrix
15
+
in `AGENTS.md` based on the artifact types in scope for the request (requirements,
16
+
design, verification, documentation, code).
17
+
18
+
## Step 2 — Investigate and Plan
19
+
20
+
Read `docs/design/introduction.md` first (if present), then investigate the
21
+
codebase to develop a concrete implementation plan:
0 commit comments