@liangxie/qf 0.0.1

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.
Files changed (56) hide show
  1. package/.claude/commands/opsx/apply.md +155 -0
  2. package/.claude/commands/opsx/archive.md +160 -0
  3. package/.claude/commands/opsx/explore.md +174 -0
  4. package/.claude/commands/opsx/propose.md +109 -0
  5. package/.claude/commands/opsx/sync.md +143 -0
  6. package/.claude/skills/openspec-apply-change/SKILL.md +159 -0
  7. package/.claude/skills/openspec-archive-change/SKILL.md +117 -0
  8. package/.claude/skills/openspec-explore/SKILL.md +289 -0
  9. package/.claude/skills/openspec-propose/SKILL.md +113 -0
  10. package/.claude/skills/openspec-sync-specs/SKILL.md +147 -0
  11. package/.codex/skills/openspec-apply-change/SKILL.md +159 -0
  12. package/.codex/skills/openspec-archive-change/SKILL.md +117 -0
  13. package/.codex/skills/openspec-explore/SKILL.md +289 -0
  14. package/.codex/skills/openspec-propose/SKILL.md +113 -0
  15. package/.codex/skills/openspec-sync-specs/SKILL.md +147 -0
  16. package/.cursor/commands/opsx-apply.md +155 -0
  17. package/.cursor/commands/opsx-archive.md +160 -0
  18. package/.cursor/commands/opsx-explore.md +174 -0
  19. package/.cursor/commands/opsx-propose.md +109 -0
  20. package/.cursor/commands/opsx-sync.md +143 -0
  21. package/.cursor/skills/openspec-apply-change/SKILL.md +159 -0
  22. package/.cursor/skills/openspec-archive-change/SKILL.md +117 -0
  23. package/.cursor/skills/openspec-explore/SKILL.md +289 -0
  24. package/.cursor/skills/openspec-propose/SKILL.md +113 -0
  25. package/.cursor/skills/openspec-sync-specs/SKILL.md +147 -0
  26. package/.github/prompts/opsx-apply.prompt.md +152 -0
  27. package/.github/prompts/opsx-archive.prompt.md +157 -0
  28. package/.github/prompts/opsx-explore.prompt.md +171 -0
  29. package/.github/prompts/opsx-propose.prompt.md +106 -0
  30. package/.github/prompts/opsx-sync.prompt.md +140 -0
  31. package/.github/skills/openspec-apply-change/SKILL.md +159 -0
  32. package/.github/skills/openspec-archive-change/SKILL.md +117 -0
  33. package/.github/skills/openspec-explore/SKILL.md +289 -0
  34. package/.github/skills/openspec-propose/SKILL.md +113 -0
  35. package/.github/skills/openspec-sync-specs/SKILL.md +147 -0
  36. package/.omo/run-continuation/ses_0d9f5cba6ffeW2r1NWuthiPI0F.json +10 -0
  37. package/.opencode/commands/opsx-apply.md +152 -0
  38. package/.opencode/commands/opsx-archive.md +157 -0
  39. package/.opencode/commands/opsx-explore.md +171 -0
  40. package/.opencode/commands/opsx-propose.md +106 -0
  41. package/.opencode/commands/opsx-sync.md +140 -0
  42. package/.opencode/skills/openspec-apply-change/SKILL.md +159 -0
  43. package/.opencode/skills/openspec-archive-change/SKILL.md +117 -0
  44. package/.opencode/skills/openspec-explore/SKILL.md +289 -0
  45. package/.opencode/skills/openspec-propose/SKILL.md +113 -0
  46. package/.opencode/skills/openspec-sync-specs/SKILL.md +147 -0
  47. package/LICENSE +21 -0
  48. package/index.js +17 -0
  49. package/openspec/changes/archive/2026-07-03-add-say-command/.openspec.yaml +2 -0
  50. package/openspec/changes/archive/2026-07-03-add-say-command/design.md +73 -0
  51. package/openspec/changes/archive/2026-07-03-add-say-command/proposal.md +28 -0
  52. package/openspec/changes/archive/2026-07-03-add-say-command/specs/cli-framework/spec.md +22 -0
  53. package/openspec/changes/archive/2026-07-03-add-say-command/specs/say-command/spec.md +22 -0
  54. package/openspec/changes/archive/2026-07-03-add-say-command/tasks.md +17 -0
  55. package/openspec/config.yaml +20 -0
  56. package/package.json +25 -0
@@ -0,0 +1,22 @@
1
+ ## ADDED Requirements
2
+
3
+ ### Requirement: CLI entry point
4
+ The system SHALL have a main entry point file (`index.js`) that initializes the CLI framework.
5
+
6
+ #### Scenario: CLI initializes successfully
7
+ - **WHEN** user runs `qf` command
8
+ - **THEN** system displays help information or version
9
+
10
+ ### Requirement: Command registration
11
+ The system SHALL support registering commands using commander library.
12
+
13
+ #### Scenario: Command is registered
14
+ - **WHEN** developer defines a command in index.js
15
+ - **THEN** command is available via `qf <command-name>`
16
+
17
+ ### Requirement: Package configuration
18
+ The system SHALL have proper npm package configuration for CLI usage.
19
+
20
+ #### Scenario: Package has bin field
21
+ - **WHEN** developer runs `npm link`
22
+ - **THEN** `qf` command is available globally
@@ -0,0 +1,22 @@
1
+ ## ADDED Requirements
2
+
3
+ ### Requirement: Say command exists
4
+ The system SHALL have a `say` command that can be invoked via `qf say`.
5
+
6
+ #### Scenario: Say command is available
7
+ - **WHEN** user runs `qf say`
8
+ - **THEN** command executes without error
9
+
10
+ ### Requirement: Say command outputs hello
11
+ The system SHALL output "hello" when the `say` command is executed.
12
+
13
+ #### Scenario: Say command outputs hello
14
+ - **WHEN** user runs `qf say`
15
+ - **THEN** system outputs "hello" to stdout
16
+
17
+ ### Requirement: Say command has no arguments
18
+ The system SHALL NOT accept any arguments for the `say` command.
19
+
20
+ #### Scenario: Say command ignores arguments
21
+ - **WHEN** user runs `qf say world`
22
+ - **THEN** system still outputs "hello" (ignoring "world")
@@ -0,0 +1,17 @@
1
+ ## 1. Setup
2
+
3
+ - [x] 1.1 Create `index.js` file with shebang line
4
+ - [x] 1.2 Add commander dependency to package.json
5
+ - [x] 1.3 Add bin field to package.json
6
+
7
+ ## 2. Core Implementation
8
+
9
+ - [x] 2.1 Import commander in index.js
10
+ - [x] 2.2 Define `say` command that outputs "hello"
11
+ - [x] 2.3 Configure program name and version
12
+
13
+ ## 3. Testing
14
+
15
+ - [x] 3.1 Run `npm link` to test locally
16
+ - [x] 3.2 Test `qf say` command outputs "hello"
17
+ - [x] 3.3 Verify command works with arguments (should ignore them)
@@ -0,0 +1,20 @@
1
+ schema: spec-driven
2
+
3
+ # Project context (optional)
4
+ # This is shown to AI when creating artifacts.
5
+ # Add your tech stack, conventions, style guides, domain knowledge, etc.
6
+ # Example:
7
+ # context: |
8
+ # Tech stack: TypeScript, React, Node.js
9
+ # We use conventional commits
10
+ # Domain: e-commerce platform
11
+
12
+ # Per-artifact rules (optional)
13
+ # Add custom rules for specific artifacts.
14
+ # Example:
15
+ # rules:
16
+ # proposal:
17
+ # - Keep proposals under 500 words
18
+ # - Always include a "Non-goals" section
19
+ # tasks:
20
+ # - Break tasks into chunks of max 2 hours
package/package.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@liangxie/qf",
3
+ "version": "0.0.1",
4
+ "description": "cli for qframework",
5
+ "keywords": [
6
+ "qframework",
7
+ "gamedevelopment",
8
+ "systemdesign",
9
+ "unity",
10
+ "godot"
11
+ ],
12
+ "license": "ISC",
13
+ "author": "liangxie",
14
+ "type": "commonjs",
15
+ "main": "index.js",
16
+ "bin": {
17
+ "qf": "./index.js"
18
+ },
19
+ "scripts": {
20
+ "test": "echo \"Error: no test specified\" && exit 1"
21
+ },
22
+ "dependencies": {
23
+ "commander": "^12.0.0"
24
+ }
25
+ }