qfai 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/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # QFAI Toolkit (v0.3.4)
1
+ # QFAI Toolkit (v0.3.5)
2
2
 
3
3
  Single-package distribution for QFAI.
4
4
 
@@ -18,7 +18,7 @@ npx qfai report
18
18
 
19
19
  ## できること
20
20
 
21
- - `npx qfai init` によるテンプレート生成(specs/contracts に加え、`.qfai/require/README.md`、`.qfai/rules/pnpm.md`、`.qfai/prompts/require-to-spec.md` を含む)
21
+ - `npx qfai init` によるテンプレート生成(specs/contracts に加え、`.qfai/require/README.md`、`.qfai/rules/pnpm.md`、`.qfai/prompts/require-to-spec.md`、`.qfai/promptpack/` を含む)
22
22
  - `npx qfai validate` による `.qfai/` 内ドキュメントの整合性・トレーサビリティ検査
23
23
  - `npx qfai report` によるレポート出力
24
24
 
@@ -16,6 +16,7 @@ npx qfai report
16
16
  - `require/` : 既存要件の集約(validate 対象外)
17
17
  - `rules/` : 規約・運用ルール
18
18
  - `prompts/` : 生成プロンプト資産(自動読取はしない)
19
+ - `promptpack/` : PromptPack(SSOT、運用ルール/観点の正本)
19
20
  - `out/` : `validate` / `report` の出力先(gitignore 推奨)
20
21
 
21
22
  詳細は各 README を参照してください。
@@ -27,6 +28,7 @@ npx qfai report
27
28
  - `rules/pnpm.md`
28
29
  - `prompts/README.md`
29
30
  - `prompts/require-to-spec.md`
31
+ - `promptpack/constitution.md`
30
32
  - `out/README.md`
31
33
 
32
34
  ## 設定と CI
@@ -45,3 +47,10 @@ npx qfai report
45
47
  - Codex: `AGENTS.md` に要旨を転記
46
48
 
47
49
  詳細は `prompts/README.md` を参照してください。
50
+
51
+ ## PromptPack の使い方(重要)
52
+
53
+ `promptpack/` は **運用ルール/観点の正本**です。自動読取は行わず、必要な章を手動で参照・転記します。
54
+
55
+ - 入口: `promptpack/constitution.md`
56
+ - 手動配置の例: Copilot/Claude/Codex 向けの指示ファイル
@@ -0,0 +1,6 @@
1
+ # Implement
2
+
3
+ - 既存の型/ユーティリティ/パターンを優先して再利用する
4
+ - 入力検証と失敗パスを先に書く
5
+ - 早期 return でネストを浅くする
6
+ - ログ/エラーメッセージは具体的かつ最小限にする
@@ -0,0 +1,9 @@
1
+ # Plan
2
+
3
+ 目的と完了条件を先に明確化し、以下を最小構成で整理する。
4
+
5
+ - ゴール/完了条件
6
+ - スコープ(やる/やらない)
7
+ - 手順(小さく分割)
8
+ - テスト方針
9
+ - リスクと確認点
@@ -0,0 +1,6 @@
1
+ # Release
2
+
3
+ - CHANGELOG と version を更新する
4
+ - `pnpm format:check && pnpm lint && pnpm check-types` を実行する
5
+ - `pnpm -C packages/qfai test` と `pnpm verify:pack` を実行する
6
+ - タグ付与は main の HEAD に対して行う
@@ -0,0 +1,6 @@
1
+ # Review
2
+
3
+ - Spec/Scenario/Contracts と実装の整合
4
+ - 互換維持/変更の区分が delta.md に記録されているか
5
+ - 影響範囲とテスト結果の妥当性
6
+ - セキュリティ/運用上の懸念がないか
@@ -0,0 +1,15 @@
1
+ # PromptPack Constitution
2
+
3
+ PromptPack はプロジェクト内の SSOT(Single Source of Truth)として扱う。
4
+
5
+ ## 基本原則
6
+
7
+ - spec/scenario/delta/BR/SC を最優先で読む
8
+ - 変更は delta.md に記録し、互換維持/変更の区分を明示する
9
+ - validate を通すことを必須とする(通らないなら仕様/運用が破綻している)
10
+ - 不確実性(仮説/未確定/TODO)は残し方針を統一する
11
+
12
+ ## 運用
13
+
14
+ - PromptPack は人が手動で参照する前提とする
15
+ - 自動配置は v0.9 の emit/adapter まで行わない
@@ -0,0 +1,4 @@
1
+ # Mode: Change
2
+
3
+ - 仕様変更の根拠を delta.md に必ず記録する
4
+ - 影響範囲を整理し、テストを増分で設計する
@@ -0,0 +1,4 @@
1
+ # Mode: Compatibility
2
+
3
+ - 既存仕様との整合を最優先にする
4
+ - 影響範囲を最小化し、回帰テストを重視する
@@ -0,0 +1,4 @@
1
+ # Role: QA
2
+
3
+ - 例外/境界値/運用時の挙動を中心に確認する
4
+ - 仕様とテストが一致しているかを検証する
@@ -0,0 +1,4 @@
1
+ # Role: Spec
2
+
3
+ - 仕様書と成果物の整合を優先する
4
+ - ID/参照/命名規約の逸脱を検出する
@@ -0,0 +1,4 @@
1
+ # Role: Test
2
+
3
+ - 振る舞い変更は再現テストを先に追加する
4
+ - 近傍の適切な層でカバーする
@@ -0,0 +1,8 @@
1
+ # Compatibility vs Change
2
+
3
+ 互換維持と仕様変更の区分は `rules/conventions.md` に従う。
4
+
5
+ - 互換維持: 既存の期待値を変えない
6
+ - 仕様変更: 期待値/挙動が変わる
7
+
8
+ 必ず `delta.md` に区分と根拠を記録する。
@@ -0,0 +1,7 @@
1
+ # Naming
2
+
3
+ 命名規約は `docs/rules/naming.md` を正とする。
4
+
5
+ - ID は `PREFIX-0001` 形式(4桁ゼロ埋め)
6
+ - 参照はファイル名ではなく ID を用いる
7
+ - 同一 ID の重複定義は禁止
@@ -0,0 +1,9 @@
1
+ # Traceability
2
+
3
+ 参照は下流→上流のみを許可する。
4
+
5
+ - SC は BR を参照する
6
+ - テスト/コードは SC を参照する
7
+ - Spec は契約/テストを参照しない
8
+
9
+ 違反は CI で検出される前提で運用する。
@@ -19,3 +19,9 @@
19
19
  - `delta.md` では **必ずどちらか1つにチェック**する
20
20
  - 両方ON/両方OFFは無効(エラー)
21
21
  - 迷った場合は「影響範囲」「受入観点」を追記して明文化する
22
+
23
+ ## OQ表記の扱い(対象範囲の限定)
24
+
25
+ - OQ表記の排除は、現行仕様として参照される場所に限定する
26
+ - 対象例: `packages/qfai/assets/init/.qfai/`, `.github/PULL_REQUEST_TEMPLATE.md`, `README.md`, `packages/qfai/README.md`
27
+ - 意思決定ログ/ロードマップ(例: `docs/roadmap/`)は対象外とし、履歴の削除を誘発しない
@@ -716,8 +716,8 @@ var import_promises6 = require("fs/promises");
716
716
  var import_node_path7 = __toESM(require("path"), 1);
717
717
  var import_node_url2 = require("url");
718
718
  async function resolveToolVersion() {
719
- if ("0.3.3".length > 0) {
720
- return "0.3.3";
719
+ if ("0.3.5".length > 0) {
720
+ return "0.3.5";
721
721
  }
722
722
  try {
723
723
  const packagePath = resolvePackageJsonPath();
@@ -693,8 +693,8 @@ import { readFile as readFile2 } from "fs/promises";
693
693
  import path7 from "path";
694
694
  import { fileURLToPath as fileURLToPath2 } from "url";
695
695
  async function resolveToolVersion() {
696
- if ("0.3.3".length > 0) {
697
- return "0.3.3";
696
+ if ("0.3.5".length > 0) {
697
+ return "0.3.5";
698
698
  }
699
699
  try {
700
700
  const packagePath = resolvePackageJsonPath();
package/dist/index.cjs CHANGED
@@ -591,8 +591,8 @@ var import_promises5 = require("fs/promises");
591
591
  var import_node_path4 = __toESM(require("path"), 1);
592
592
  var import_node_url = require("url");
593
593
  async function resolveToolVersion() {
594
- if ("0.3.3".length > 0) {
595
- return "0.3.3";
594
+ if ("0.3.5".length > 0) {
595
+ return "0.3.5";
596
596
  }
597
597
  try {
598
598
  const packagePath = resolvePackageJsonPath();
package/dist/index.mjs CHANGED
@@ -534,8 +534,8 @@ import { readFile as readFile2 } from "fs/promises";
534
534
  import path4 from "path";
535
535
  import { fileURLToPath } from "url";
536
536
  async function resolveToolVersion() {
537
- if ("0.3.3".length > 0) {
538
- return "0.3.3";
537
+ if ("0.3.5".length > 0) {
538
+ return "0.3.5";
539
539
  }
540
540
  try {
541
541
  const packagePath = resolvePackageJsonPath();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qfai",
3
- "version": "0.3.4",
3
+ "version": "0.3.5",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "qfai": "./dist/cli/index.mjs"