@ivorycanvas/qamap 0.3.4 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -1
- package/dist/e2e.js +43 -1
- package/dist/e2e.js.map +1 -1
- package/dist/manifest.js +138 -4
- package/dist/manifest.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/benchmarking.md +6 -1
- package/docs/e2e-output-examples.md +1 -1
- package/docs/manifest.md +4 -0
- package/docs/release-validation.md +18 -31
- package/package.json +1 -1
package/docs/manifest.md
CHANGED
|
@@ -56,6 +56,10 @@ QAMap cannot know every team's product priorities from file paths alone. The man
|
|
|
56
56
|
|
|
57
57
|
When a recommendation is wrong, edit the manifest path shown in QAMap output. The next branch should get better recommendations without another explanation.
|
|
58
58
|
|
|
59
|
+
For server projects, the generated baseline can include manual API contract flows inferred from common route, controller, handler, and framework-backed service modules. These flows use file anchors and start with success-contract and invalid-request checks; maintainers should still review names, criticality, and project-specific failure behavior before committing them as team policy.
|
|
60
|
+
|
|
61
|
+
A domain match is useful even when no declared flow anchor matches. In that case QAMap keeps the existing code-derived flow, steps, selectors, and entrypoint, and adds the manifest domain as provenance. It does not fabricate flow-level checks. Add or correct a flow anchor when the team wants the manifest to supply durable checks and runner details on later PRs.
|
|
62
|
+
|
|
59
63
|
## Concrete Bootstrap Example
|
|
60
64
|
|
|
61
65
|
A first baseline can be useful before a human writes YAML by hand. Suppose the default branch has:
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Release Validation
|
|
2
2
|
|
|
3
|
+
## 0.3.5 - 2026-07-11
|
|
4
|
+
|
|
5
|
+
Validated as a manifest-feedback reliability patch:
|
|
6
|
+
|
|
7
|
+
| Gate | Current result |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| `pnpm test` | 127/127 passing |
|
|
10
|
+
| `pnpm bench:ci` | Eight public PR fixtures pass; API and reverse-import fixtures also generate an external base manifest and require a manifest-backed head flow |
|
|
11
|
+
| Coverage | Lines 86.09%, branches 83.18%, functions 94.66% |
|
|
12
|
+
| `npm publish --dry-run --access public` | Passed for `@ivorycanvas/qamap@0.3.5`; 115 files, 772.8 kB packed |
|
|
13
|
+
| API manifest baseline | Common server modules produce manual contract flows with API anchors and success/failure checks |
|
|
14
|
+
| Domain fallback | Domain-only matches preserve manifest provenance without claiming unrelated files or inventing manifest checks |
|
|
15
|
+
| Privacy | Public changes use synthetic fixtures; private smoke output remains outside the repository |
|
|
16
|
+
|
|
3
17
|
## 0.3.4 - 2026-07-10
|
|
4
18
|
|
|
5
19
|
Validated before publishing `0.3.4` with a committed, CI-enforced recommendation contract instead of relying only on private smoke repositories:
|
|
@@ -216,40 +230,13 @@ The matrix below is public, fixture-backed evidence from the repository test sui
|
|
|
216
230
|
|
|
217
231
|
See [E2E output examples](e2e-output-examples.md) for the kind of plan and draft snippets users should see from the current release.
|
|
218
232
|
|
|
219
|
-
##
|
|
220
|
-
|
|
221
|
-
Last verified on 2026-07-03 for the 0.3.1 README demo patch after removing the stale animated GIF from the README and npm tarball:
|
|
222
|
-
|
|
223
|
-
| Check | Result |
|
|
224
|
-
| --- | --- |
|
|
225
|
-
| `pnpm test` | 95 tests passed. |
|
|
226
|
-
| `git diff --check` | Passed. |
|
|
227
|
-
| `pnpm pack --dry-run` | Passed; tarball includes 97 files and no committed demo GIF. |
|
|
228
|
-
| `npm publish --dry-run --access public` | Passed for `@ivorycanvas/qamap@0.3.1`; package size is 289.1 kB and includes the manifest schema, quick-start docs, release docs, and `skills/qamap-pr-qa/SKILL.md`. |
|
|
229
|
-
|
|
230
|
-
## Real Repository Smoke Snapshot
|
|
231
|
-
|
|
232
|
-
The latest smoke run used private representative repositories and wrote draft output only under `/tmp/qamap-preview-*`. The smoke commands did not run `e2e setup` or write generated files into the target repositories. The table records public-safe target shapes rather than private repository names.
|
|
233
|
-
|
|
234
|
-
2026-07-02 follow-up smoke on PR #71 ran `manifest context`, `manifest init --write /tmp/...`, `e2e plan`, and `e2e draft --dry-run` across 14 local Git repositories plus package-scoped scans for a large frontend monorepo. All commands completed without changing target repository status. The run exposed one important adoption need: users should be able to generate a manifest outside the target repo and pass it back into PR commands. PR #71 now supports that read-only preview through `--manifest <file>`.
|
|
235
|
-
|
|
236
|
-
The same follow-up also showed the next quality gap. External manifest previews work, but many real branch changes did not match route/page-only manifest anchors, so generated drafts often stayed `domain-language`, `review-only`, or `near-runnable` instead of `verification-manifest`. The next release bar should improve component, function, API client, query, schema, and test anchors so manifest matches cover more than route files.
|
|
237
|
-
|
|
238
|
-
| Target shape | Base/head mode | Result | Follow-up signal |
|
|
239
|
-
| --- | --- | --- | --- |
|
|
240
|
-
| Expo / React Native manifest baseline | `manifest init` wrote only to `/tmp/qamap-journal-note-manifest.yaml` | Generated 9 domains, 8 flows, 8 anchors, and 16 checks without changing the target repo. Direct `app/*.tsx` screens now produce specific paths such as `app/SentimentChatPage.tsx`; `+not-found.tsx` is not promoted as a product domain. | Good 0.2.x signal for baseline quality. Remaining work is richer screen/route semantics and selector-specific checks. |
|
|
241
|
-
| Web monorepo package | Package scan with `--workspace-root`, feature branch compared with `main`, working tree included | Detected `web`, recommended Playwright, inferred a concrete route, produced changed-flow specs, and correctly blocked promotion because Playwright config, deterministic fixture/mock data, selector evidence, and validation evidence were missing. | Flow naming improved, but docs/design-only files can still create low-signal drafts that should be filtered or demoted. |
|
|
242
|
-
| Expo / React Native app | Feature branch compared with `develop`, working tree included | Detected `expo-react-native`, recommended Maestro, found an existing Jest suite, produced multiple near-runnable YAML drafts, and gave useful blockers for missing Maestro directory plus missing stable mobile selectors. | Strongest current real-repo result; remaining gap is selector and app-specific setup quality. |
|
|
243
|
-
| Nuxt / Vue web app with existing Playwright tests | `origin/develop` to `HEAD`, working tree included | Detected `web`, recommended Playwright, recognized existing test evidence, and blocked draft promotion because no Playwright config or runnable route/screen entrypoint was inferred. | Test-only or generated-test changes can still produce generic smoke draft names; QAMap should better distinguish changed tests from changed product behavior. |
|
|
244
|
-
| Django-style API service | `origin/develop` to `HEAD`, working tree included | Detected `api-service`, selected manual output, found a large pytest suite, generated API contract and configuration checklists with zero TODOs, and avoided browser/device runner assumptions. | Good service classification; fixture readiness should become more endpoint-specific. |
|
|
245
|
-
| Design token repository | `main` to `HEAD`, working tree included | Detected `design-tokens`, selected manual output, avoided browser/device selector requirements, and produced review-only artifact validation output. | Docs-only or style-only changes may still surface content/theme wording instead of token artifact language. |
|
|
246
|
-
| Taxonomy / data catalog repository | `main` to `HEAD`, working tree included | Detected `data-catalog`, selected manual output, avoided API mock requirements, and produced review-only checklist output with no TODOs. | Catalog-specific changes are handled, but docs/config-only changes should be labeled more explicitly as low-signal. |
|
|
233
|
+
## Private Smoke Protocol
|
|
247
234
|
|
|
248
|
-
|
|
235
|
+
Private repositories may be used as local, read-only diagnostics, but their raw output is never release documentation or fixture input. Write manifests and drafts only to an operating-system temp directory, compare target `git status` before and after, and retain no repository names, paths, flow titles, source excerpts, or domain vocabulary in commits or pull requests. Reduce every confirmed defect to a minimal synthetic fixture before it enters the public suite.
|
|
249
236
|
|
|
250
237
|
## Ongoing Validation Notes
|
|
251
238
|
|
|
252
|
-
The release candidate
|
|
239
|
+
The release candidate must pass the fixture-backed suite, package dry-run, and read-only smoke protocol. Record only public synthetic evidence in this document or in release notes:
|
|
253
240
|
|
|
254
241
|
- whether the generated flow names match the team's domain language
|
|
255
242
|
- whether the recommended runner is plausible
|
|
@@ -260,7 +247,7 @@ The release candidate has passed the fixture-backed suite, package dry-run, npm
|
|
|
260
247
|
|
|
261
248
|
## Stop Conditions
|
|
262
249
|
|
|
263
|
-
Do not publish
|
|
250
|
+
Do not publish the current candidate if any representative target shows one of these problems:
|
|
264
251
|
|
|
265
252
|
- generated flow names are dominated by generic folder names instead of product language
|
|
266
253
|
- test-only or docs-only changes are presented as confident product journeys without low-signal wording
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ivorycanvas/qamap",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"description": "Local-first QA skill that turns PR diffs into affected flows, missing evidence, and E2E drafts with no cloud or LLM token.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@10.32.1",
|