featureparity 0.0.16 → 0.0.17
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.
- checksums.yaml +4 -4
- data/lib/fp/cli.rb +2 -0
- data/lib/fp/client.rb +43 -3
- data/lib/fp/commands/changed_tests.rb +126 -0
- data/lib/fp/commands/ci_report.rb +133 -28
- data/lib/fp/commands/comment.rb +99 -0
- data/lib/fp/commands/help.rb +33 -0
- data/lib/fp/commands/init.rb +52 -12
- data/lib/fp/commands/propose_change.rb +46 -1
- data/lib/fp/commands/report.rb +63 -6
- data/lib/fp/commands.rb +2 -0
- data/lib/fp/junit.rb +50 -5
- data/lib/fp/source_fingerprint.rb +193 -0
- data/lib/fp/version.rb +1 -1
- data/lib/fp.rb +1 -0
- data/skills/fp/SKILL.md +31 -0
- data/skills/fp/references/cli.md +61 -1
- metadata +5 -2
data/skills/fp/references/cli.md
CHANGED
|
@@ -146,6 +146,12 @@ an existing promise is a contradiction signal: decide which promise reflects pro
|
|
|
146
146
|
then record that decision with `fp propose-change` or `--removal`. Do not weaken the test or add
|
|
147
147
|
a second requirement around the conflict; ask a human when product intent is unclear.
|
|
148
148
|
|
|
149
|
+
Existing tests are protected product evidence. Flag any intended edit to a test that backs
|
|
150
|
+
passing evidence; if its expected behaviour would change, wait for explicit human approval of
|
|
151
|
+
the requirement change before editing it. A new requirement does not supersede a pre-existing
|
|
152
|
+
failing test merely because the requirement was drafted or activated. Surface that conflict and
|
|
153
|
+
do not change or adopt the old test as proof without explicit human approval.
|
|
154
|
+
|
|
149
155
|
```bash
|
|
150
156
|
fp propose --project stowzilla \
|
|
151
157
|
--slug current_shipment_status \
|
|
@@ -295,6 +301,60 @@ item says FeatureParity cannot determine the activity; a linked work item with n
|
|
|
295
301
|
explicitly says no requirement changes were recorded. Generated `fp init` workflows configure
|
|
296
302
|
both outputs before the parity gate.
|
|
297
303
|
|
|
304
|
+
### fp changed-tests
|
|
305
|
+
|
|
306
|
+
List every unresolved audit finding for a bound test whose source fingerprint differs from
|
|
307
|
+
the accepted revision. The queue is independent of the testcase's passing/failing/stub outcome
|
|
308
|
+
and from `suspect` evidence caused by changed requirement wording.
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
fp changed-tests # project from .featureparity.yml
|
|
312
|
+
fp changed-tests --project stowzilla --surface api
|
|
313
|
+
fp changed-tests --json # complete machine-readable queue
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
Each finding includes the current requirement and acceptance rule, surface and optional test
|
|
317
|
+
type, testcase and CI outcome, isolated-test or labelled whole-file fingerprint scope, and the
|
|
318
|
+
accepted and candidate fingerprints, commits, source locations, and links.
|
|
319
|
+
|
|
320
|
+
After comparing those exact revisions with the requirement, an authorized agent records a
|
|
321
|
+
plain-language assessment:
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
fp changed-tests assess <finding-id> \
|
|
325
|
+
--candidate-fingerprint <sha256> \
|
|
326
|
+
--classification still_proves \
|
|
327
|
+
--explanation "The refactor changes setup only; the same observable result is asserted."
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
Classifications are `still_proves`, `no_longer_proves`, and `uncertain`. `still_proves`
|
|
331
|
+
resolves only the supplied candidate fingerprint; if it came from a PR, that exact fingerprint
|
|
332
|
+
becomes the accepted baseline only after a default-branch CI report observes it. The other two
|
|
333
|
+
classifications remain open for a human product decision. A stale candidate is rejected, and a
|
|
334
|
+
later fingerprint always requires a new assessment. Assessing never changes the requirement
|
|
335
|
+
wording or CI outcome.
|
|
336
|
+
|
|
337
|
+
#### Upgrading an existing project
|
|
338
|
+
|
|
339
|
+
Changed-test auditing requires fp 0.0.17 or newer and the corresponding backend deployment.
|
|
340
|
+
Hosted-project users do not migrate project data or configuration.
|
|
341
|
+
|
|
342
|
+
```bash
|
|
343
|
+
gem update featureparity
|
|
344
|
+
fp version # 0.0.17 or newer
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
Fresh CI jobs that run `gem install featureparity` automatically pick up the release; update
|
|
348
|
+
any Bundler or install-command pin explicitly. Keep the existing `fp ci-report` call and run it
|
|
349
|
+
once on the default branch: the upgraded CLI sends source receipts automatically, and that run
|
|
350
|
+
lazily establishes accepted baselines without a backfill. Report trusted pull requests with
|
|
351
|
+
`--pr <url>` to open findings before merge while preserving the default-branch baseline.
|
|
352
|
+
|
|
353
|
+
The workflow recipe generated by fp 0.0.17 shows both paths. Adapt an existing customized
|
|
354
|
+
workflow manually. `fp init --force` overwrites `.featureparity.yml` and the generated workflow,
|
|
355
|
+
so reserve it for unmodified generated files, preserve the original project/surface options,
|
|
356
|
+
and review the resulting diff.
|
|
357
|
+
|
|
298
358
|
### fp matrix
|
|
299
359
|
|
|
300
360
|
Display the parity matrix. Cells show the state of the evidence filed for each
|
|
@@ -398,7 +458,7 @@ fp init --project stowzilla --dir path/to/repo
|
|
|
398
458
|
| File | Purpose |
|
|
399
459
|
|------|---------|
|
|
400
460
|
| `.featureparity.yml` | declares the project slug, so `--project` becomes optional |
|
|
401
|
-
| `.github/workflows/feature-parity.yml` | the CI gate
|
|
461
|
+
| `.github/workflows/feature-parity.yml` | the CI gate, PR requirement-change summary, and adaptable PR/default-branch reporting recipe |
|
|
402
462
|
| `AGENTS.md` (appended) | instructions telling agents to mark and report their tests |
|
|
403
463
|
|
|
404
464
|
Existing files are skipped unless `--force`. The `AGENTS.md` section is appended between
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: featureparity
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.17
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Stowzilla
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-10-
|
|
11
|
+
date: 2026-10-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: net-http
|
|
@@ -97,9 +97,11 @@ files:
|
|
|
97
97
|
- lib/fp/commands/attach.rb
|
|
98
98
|
- lib/fp/commands/attachments.rb
|
|
99
99
|
- lib/fp/commands/base.rb
|
|
100
|
+
- lib/fp/commands/changed_tests.rb
|
|
100
101
|
- lib/fp/commands/changes.rb
|
|
101
102
|
- lib/fp/commands/check.rb
|
|
102
103
|
- lib/fp/commands/ci_report.rb
|
|
104
|
+
- lib/fp/commands/comment.rb
|
|
103
105
|
- lib/fp/commands/config_cmd.rb
|
|
104
106
|
- lib/fp/commands/conversation.rb
|
|
105
107
|
- lib/fp/commands/export.rb
|
|
@@ -124,6 +126,7 @@ files:
|
|
|
124
126
|
- lib/fp/output.rb
|
|
125
127
|
- lib/fp/parity.rb
|
|
126
128
|
- lib/fp/project_config.rb
|
|
129
|
+
- lib/fp/source_fingerprint.rb
|
|
127
130
|
- lib/fp/version.rb
|
|
128
131
|
- skills/fp/SKILL.md
|
|
129
132
|
- skills/fp/references/cli.md
|