featureparity 0.0.20 → 0.0.22
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 +40 -0
- data/lib/fp/client.rb +34 -0
- data/lib/fp/commands/analyze.rb +10 -0
- data/lib/fp/commands/attach.rb +109 -39
- data/lib/fp/commands/attachments.rb +6 -0
- data/lib/fp/commands/base.rb +136 -0
- data/lib/fp/commands/changed_tests.rb +12 -0
- data/lib/fp/commands/changes.rb +9 -0
- data/lib/fp/commands/check.rb +41 -3
- data/lib/fp/commands/ci_report.rb +17 -0
- data/lib/fp/commands/comment.rb +10 -0
- data/lib/fp/commands/config_cmd.rb +9 -0
- data/lib/fp/commands/conversation.rb +5 -0
- data/lib/fp/commands/export.rb +10 -0
- data/lib/fp/commands/help.rb +81 -5
- data/lib/fp/commands/history.rb +20 -1
- data/lib/fp/commands/init.rb +50 -1
- data/lib/fp/commands/list.rb +12 -0
- data/lib/fp/commands/matrix.rb +9 -0
- data/lib/fp/commands/profile.rb +9 -0
- data/lib/fp/commands/projects.rb +63 -3
- data/lib/fp/commands/propose.rb +18 -0
- data/lib/fp/commands/propose_change.rb +73 -2
- data/lib/fp/commands/report.rb +157 -7
- data/lib/fp/commands/repos.rb +11 -0
- data/lib/fp/commands/setup.rb +11 -0
- data/lib/fp/commands/show.rb +42 -3
- data/lib/fp/commands/showroom.rb +141 -0
- data/lib/fp/commands/surfaces.rb +258 -0
- data/lib/fp/commands/version.rb +3 -0
- data/lib/fp/commands/whoami.rb +6 -0
- data/lib/fp/commands.rb +1 -0
- data/lib/fp/junit.rb +213 -18
- data/lib/fp/version.rb +1 -1
- data/skills/fp/SKILL.md +27 -0
- data/skills/fp/references/cli.md +52 -2
- metadata +3 -2
data/lib/fp/version.rb
CHANGED
data/skills/fp/SKILL.md
CHANGED
|
@@ -336,6 +336,30 @@ This also catches the one regression a green test suite can't: a test that was d
|
|
|
336
336
|
renamed, or had its `fp:` marker stripped. Every remaining test passes, so CI is happy,
|
|
337
337
|
while the requirement quietly lost its only proof.
|
|
338
338
|
|
|
339
|
+
### 9. Fill in the client showroom when a surface is deployed
|
|
340
|
+
|
|
341
|
+
The project's client (the person the software is being built for) sees one page: the
|
|
342
|
+
showroom. It is a welcome note plus a card per surface — a link, a button label, and
|
|
343
|
+
instructions for signing in and trying it. You deployed the surface, created the demo
|
|
344
|
+
accounts, and know the URLs, so you fill the card in; a human retyping it into project
|
|
345
|
+
settings is the step that goes stale.
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
fp showroom --project X # current state; hidden surfaces listed
|
|
349
|
+
fp projects edit X --showroom-welcome-file docs/showroom/welcome.txt
|
|
350
|
+
fp surfaces edit web --project X \
|
|
351
|
+
--showroom-url https://dev.example.com \
|
|
352
|
+
--showroom-label "Open the web app" \
|
|
353
|
+
--showroom-instructions-file docs/showroom/web.txt
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
Write instructions a non-technical reader can follow: where to click, which account to
|
|
357
|
+
sign in as (a dedicated demo account, not the one your e2e suite mutates), what data is
|
|
358
|
+
already there to look at, and one or two things worth trying. Keep the file in the repo
|
|
359
|
+
(`docs/showroom/<surface>.txt`) so the next deploy can re-send it. A surface with neither
|
|
360
|
+
a link nor instructions is not shown; clear both to take a card down. Feedback and the
|
|
361
|
+
share link are human-only, so after writing the content tell a person it's ready.
|
|
362
|
+
|
|
339
363
|
### Repo-local config (`.featureparity.yml`)
|
|
340
364
|
|
|
341
365
|
If a repo has a `.featureparity.yml`, `--project` is optional — `fp` reads the slug from
|
|
@@ -419,6 +443,9 @@ not as the fix — you still write the proposal.
|
|
|
419
443
|
| List projects | `fp projects` |
|
|
420
444
|
| Create a project | `fp projects create <slug> --name "..." --surfaces api,web` |
|
|
421
445
|
| View / edit a project | `fp projects show <slug>`, `fp projects edit <slug> --name "..."` |
|
|
446
|
+
| Preview the client showroom | `fp showroom --project X` |
|
|
447
|
+
| Write a surface's showroom card | `fp surfaces edit <key> --project X --showroom-url ... --showroom-instructions-file ...` |
|
|
448
|
+
| Write the showroom welcome | `fp projects edit <slug> --showroom-welcome-file ...` |
|
|
422
449
|
|
|
423
450
|
All commands support `--json` for machine-readable output.
|
|
424
451
|
|
data/skills/fp/references/cli.md
CHANGED
|
@@ -36,7 +36,7 @@ fp projects # list
|
|
|
36
36
|
fp projects --json
|
|
37
37
|
fp projects show <slug> # details + surfaces
|
|
38
38
|
fp projects create <slug> --name "Name" [--description "..."] [--surfaces api,web]
|
|
39
|
-
fp projects edit <slug> [--name "..."] [--description "..."]
|
|
39
|
+
fp projects edit <slug> [--name "..."] [--description "..."] [--showroom-welcome "..." | --showroom-welcome-file PATH]
|
|
40
40
|
fp projects delete <slug> [--yes]
|
|
41
41
|
```
|
|
42
42
|
|
|
@@ -54,13 +54,63 @@ owner — or a key minted by one — may delete; a member's key gets 403.
|
|
|
54
54
|
|
|
55
55
|
### fp surfaces
|
|
56
56
|
|
|
57
|
-
List
|
|
57
|
+
List, view, create, edit and delete a project's surfaces.
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
60
|
fp surfaces --project stowzilla
|
|
61
61
|
fp surfaces --project stowzilla --json
|
|
62
|
+
fp surfaces show <key> --project stowzilla
|
|
63
|
+
fp surfaces add <key> --project stowzilla [--name "..."] [--kind api|web|android|ios|other] [--audience ...] [--repo org/repo] [--default-branch main]
|
|
64
|
+
fp surfaces edit <key> --project stowzilla [--name "..."] [--kind ...] [--audience ...] [--repo ...] [--default-branch ...] [--key new_key]
|
|
65
|
+
fp surfaces edit <key> --project stowzilla [--showroom-url URL] [--showroom-label "..."] [--showroom-instructions "..." | --showroom-instructions-file PATH]
|
|
66
|
+
fp surfaces delete <key> --project stowzilla [--yes]
|
|
62
67
|
```
|
|
63
68
|
|
|
69
|
+
A key is unique within a project. `add` on a key that already exists fails and points
|
|
70
|
+
you at `edit` — use `edit` to fill in the kind or repo of a surface that `fp projects
|
|
71
|
+
create --surfaces` made with defaults. `edit` only sends the flags you pass. `delete`
|
|
72
|
+
asks you to type the key back in a terminal and refuses without `--yes` otherwise.
|
|
73
|
+
|
|
74
|
+
A surface that requirements still require can't be deleted or re-keyed — the server
|
|
75
|
+
refuses and names them. Taking a surface off a requirement is a human's call, so ask
|
|
76
|
+
one rather than working around it.
|
|
77
|
+
|
|
78
|
+
### fp showroom
|
|
79
|
+
|
|
80
|
+
The client showroom is the one page a client of the project sees: the project's
|
|
81
|
+
welcome note, then a card per surface with a link, a button label, and instructions
|
|
82
|
+
for signing in and trying it. The team's agents keep that content; this command
|
|
83
|
+
shows the result.
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
fp showroom --project stowzilla # what a client sees, plus which surfaces are hidden and why
|
|
87
|
+
fp showroom --project stowzilla --json # { showroom, hidden, share_link }
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Writing the content:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
fp projects edit stowzilla --showroom-welcome "Hi Sam, here's what we built."
|
|
94
|
+
fp projects edit stowzilla --showroom-welcome-file docs/showroom/welcome.txt
|
|
95
|
+
fp surfaces edit web --project stowzilla \
|
|
96
|
+
--showroom-url https://dev.example.com \
|
|
97
|
+
--showroom-label "Open the web app" \
|
|
98
|
+
--showroom-instructions-file docs/showroom/web.txt
|
|
99
|
+
fp surfaces edit ios --project stowzilla --showroom-url "" --showroom-instructions "" # take the card down
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
A surface is on the showroom once it has a link or instructions, and leaves it when
|
|
103
|
+
both are blank; there is no separate on/off switch, so `fp showroom` lists the hidden
|
|
104
|
+
surfaces so a card that dropped out is noticed. Links must be `http://` or `https://`
|
|
105
|
+
(the CLI checks before sending). The `-file` variants are for anything longer than a
|
|
106
|
+
line: the showroom keeps line breaks, so write real paragraphs. Only the flags you pass
|
|
107
|
+
are sent.
|
|
108
|
+
|
|
109
|
+
Two things are deliberately not available to an agent's key: leaving feedback (that is
|
|
110
|
+
the client talking) and turning the share link on or off (publishing a link anyone can
|
|
111
|
+
open is a person's decision). `fp showroom` reports the share link as `unknown` for
|
|
112
|
+
that reason; a human checks it under Project Settings → Showroom in the web app.
|
|
113
|
+
|
|
64
114
|
### fp list
|
|
65
115
|
|
|
66
116
|
List requirements.
|
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.22
|
|
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-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: net-http
|
|
@@ -119,6 +119,7 @@ files:
|
|
|
119
119
|
- lib/fp/commands/repos.rb
|
|
120
120
|
- lib/fp/commands/setup.rb
|
|
121
121
|
- lib/fp/commands/show.rb
|
|
122
|
+
- lib/fp/commands/showroom.rb
|
|
122
123
|
- lib/fp/commands/surfaces.rb
|
|
123
124
|
- lib/fp/commands/version.rb
|
|
124
125
|
- lib/fp/commands/whoami.rb
|