Class: Fp::Commands::Help

Inherits:
Base
  • Object
show all
Defined in:
lib/fp/commands/help.rb

Overview

fp help

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Fp::Commands::Base

Instance Method Details

#run(_args) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'lib/fp/commands/help.rb', line 7

def run(_args)
  puts <<~HELP
    fp - FeatureParity CLI for agents

    USAGE
      fp <command> [flags]

    COMMANDS
      projects                          List projects you have access to
      surfaces --project <slug>         List surfaces for a project
      list --project <slug>             List active requirements
      show <slug> --project <slug>      Show requirement details
      propose --project <slug> ...      Propose a new requirement (as draft)
      report <slug> --project <slug>... Report evidence for a requirement
      matrix --project <slug>           Show the parity matrix
      profile add|list                  Manage named profiles
      config set|get|unset|list         Manage global settings
      setup                             Interactive first-time setup
      version                           Show version
      help                              Show this help

    GLOBAL FLAGS
      --json                            Output as JSON envelope
      --profile <name>                  Use a named profile
      -p <name>                         Alias for --profile
      --api-url <url>                   Override API URL for this command

    AUTHENTICATION
      Set FP_API_KEY environment variable, or use a profile:

        export FP_API_KEY=fp_...
        fp projects

      Or run interactive setup (validates key and saves profile):

        fp setup
        fp setup --api-key fp_... --non-interactive

      Or add a named profile manually:

        fp profile add galen --api-key fp_...
        fp --profile galen projects
        FP_PROFILE=galen fp projects

      If both FP_API_KEY and a profile are set, FP_API_KEY wins.

    EXAMPLES
      # First-time setup (interactive)
      fp setup

      # Non-interactive setup for CI/automation
      fp setup --api-key fp_... --profile ci-agent --non-interactive

      # List projects
      fp projects

      # List requirements for a project
      fp list --project stowzilla

      # Show gaps (requirements without evidence)
      fp list --project stowzilla --gaps --surface customer_android

      # Show a specific requirement
      fp show print_container_qr --project stowzilla

      # Propose a new requirement (creates as draft)
      fp propose --project stowzilla \\
        --slug print_container_qr \\
        --name "Print QR code on container label" \\
        --why "Customers scan to track containers" \\
        --required api,customer_android,customer_ios \\
        --acceptance "QR code is printed and scannable"

      # Report evidence for a requirement
      fp report print_container_qr --project stowzilla \\
        --surface customer_android \\
        --file app/src/test/java/PrintQrTest.kt \\
        --repo stowzilla/customer-android \\
        --pr https://github.com/stowzilla/customer-android/pull/123 \\
        --work-item https://app.fizzy.do/123/cards/456 \\
        --title "prints a QR code onto the container label"

      # Show the parity matrix
      fp matrix --project stowzilla

      # Export matrix as CSV
      fp matrix --project stowzilla --csv > matrix.csv

    MARKER CONVENTION
      Tests are bound to requirements using the fp:<slug> marker in the test file.
      The CLI does not rewrite test files - you add the marker yourself.

      Example (Ruby/RSpec):
        # fp:print_container_qr
        it 'prints a QR code onto the container label' do
          ...
        end

      Example (Kotlin):
        // fp:print_container_qr
        @Test
        fun `prints a QR code onto the container label`() {
          ...
        }

      Example (Swift/XCTest):
        // fp:print_container_qr
        func testPrintsQRCodeOntoContainerLabel() {
          ...
        }

    MORE INFORMATION
      https://featureparity.dev/docs
  HELP
end