You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* fix(profile): align stale 'pro' default refs with actual standard default
settings.json has shipped pf.defaultProfile: "standard" since v1.4.0
(LESSON 0.10 — demo-first UX flip), but several markdown / Python
files still claimed 'pro' as the default. Because LLM agents reading
commands/new.md and ideation-lead.md trust the markdown over the
JSON config, /pf:new was silently spinning up the pro profile (18
previews · 3×5 eng · ~70min) when users expected the standard demo
path (9 previews · 2×5 eng · ~25min).
Fix:
- commands/new.md: examples row now shows standard as the default
invocation; flag table corrected; "(기본)" tag moved from pro row
to standard row in the comparison table; flow text §7 expanded to
show the full resolution chain (--profile flag → env PF_PROFILE →
settings.json → final fallback "standard"). Adds explicit
"use --profile=pro|max for deeper verification" + PF_PROFILE
env-var example.
- agents/ideation/ideation-lead.md L110: profile-resolve doc updated
to "standard" + LESSON 0.10 cross-reference.
- hooks/cost-regression.py L46-60: docstring + 3 fallback branches
("pro" → "standard"). Now matches settings.json shipped value.
- schemas/pf-profile.schema.json description: "pro (default)" wording
replaced with "standard (default since v1.4)".
Side effects:
- bash scripts/verify-plugin.sh → 58 Pass / 0 Fail (unchanged)
- No advocate boilerplate impact (lint scope is advocates/P*.md, not
any of the touched files)
- Historical references in LESSONS.md / CHANGELOG.md preserved
intentionally (they document the v1.3.0 → v1.4.0 flip itself)
- New users / fresh /pf:new invocations now hit the documented
intended UX: ~25min standard run by default
How to opt into pro/max from start (now documented in commands/new.md):
/pf:new "..." --profile=pro
/pf:new "..." --profile=max
PF_PROFILE=pro /pf:new "..."
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* chore: untrack .claude/scheduled_tasks.lock + gitignore
Accidentally added in the previous commit (Claude Code session lock,
per-process state, not source). Removed from index and gitignored so
future sessions don't re-stage it.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|`--profile`|**`standard`** (v1.4+, was `pro` in v1.3.0; lives in `settings.json``pf.defaultProfile`) | 프로파일 이름: `standard` · `pro` · `max`. 처음부터 더 깊은 검증을 원하면 `--profile=pro` 또는 `--profile=max` 명시. 환경변수 `PF_PROFILE=pro` 도 동일 효과 (해당 셸 세션에 영향).|
31
32
|`--previews=N`| profile에 종속 (9/18/26) | Advocate 수 오버라이드. profile의 `max_user_expand` (26) 이내 |
32
33
|`--no-cache`| false | PreviewDD-level 캐시 스킵. 동일 아이디어 재실행 시 강제 재생성 |
33
34
34
35
### 프로파일 빠른 비교
35
36
36
37
| Profile | Previews | Eng teams | Panels | SCC iter | P95 ceiling | 권장 용도 |
@@ -51,7 +52,7 @@ M1 Run Supervisor는 **모든 작업 전** 다음을 순서대로 검증합니
51
52
4.**claude CLI + plugin install** — plugin 자체 로드 상태 확인.
52
53
5.**api.anthropic.com 연결** — 기본 reachability 확인.
53
54
6.**LESSONS pre-load** — `~/.claude/preview-forge/memory/LESSONS.md`에서 관련 카테고리(1. PreviewDD, 4. Memory, 6. Plugin 배포)를 읽어 department lead들의 system prompt에 주입.
54
-
7.**profile resolve** (v1.3+) — `--profile` 플래그 · env `PF_PROFILE`·`settings.json` defaultProfile순으로 해결 → `runs/<id>/.profile` 파일에 기록. 이후 모든 hook·monitor가 이 값을 참조.
55
+
7.**profile resolve** (v1.3+, v1.4+ default flipped to `standard`) — `--profile` 플래그 → env `PF_PROFILE`→`settings.json``pf.defaultProfile` (현재 `"standard"`) → 최종 fallback `"standard"`순으로 해결 → `runs/<id>/.profile` 파일에 기록. 이후 모든 hook·monitor가 이 값을 참조. 사용자가 처음부터 깊은 검증을 원하면 `/pf:new "..." --profile=pro|max` 또는 `PF_PROFILE=pro` 환경변수 사용.
55
56
8. **idea-input size cap** (umbrella #95 follow-up — defense in depth, layer 1) — orchestrator MUST invoke [`scripts/pre-flight.sh --idea "<seed>"`](../../../scripts/pre-flight.sh) (or the equivalent direct call to [`scripts/validate-idea-input.sh`](../../../scripts/validate-idea-input.sh)) on the raw seed idea **BEFORE** writing it to `runs/<id>/idea.json`, computing any cache key (`scripts/preview-cache.sh key …`), or expanding the I1 Socratic interview prompt. The validator exits 0 if `len(idea) ≤ 5000` Unicode code points (matching the `idea_summary` schema cap), exits non-zero otherwise. On non-zero, abort the run with the validator's stderr message — do NOT silently truncate. Rationale: the schema's `idea_summary.maxLength: 5000` only fires at S-3 validation, well after the seed idea has already inflated the Socratic system prompt and been hashed into the cache key. This pre-flight gate stops a 10MB seed idea at the door. Bypass policy: NONE — `--no-cache` does not bypass this check. Truncate mode (`scripts/validate-idea-input.sh --truncate -`) exists for non-interactive automation pipelines that explicitly opt in; `/pf:new` itself MUST default to reject so the user keeps full intent over what gets trimmed. The size cap also runs at S-3 schema validation as the canonical authority — this layer-1 gate is belt-and-suspenders.
56
57
57
58
CLI 환경에서는 `scripts/pre-flight.sh` 또는 `pf check`로 동일 검증 수동 실행 가능. 아이디어 텍스트까지 포함해 한 번에 검증하려면 `scripts/pre-flight.sh --idea "<seed>"` (or `--idea-file <path>` for inputs that may exceed ARG_MAX).
"description": "Preview Forge run profile — controls cost, speed, and thoroughness of a 3-DD cycle. Three values ship: standard (cheapest), pro (default, balanced), max (all-in 143 agents).",
5
+
"description": "Preview Forge run profile — controls cost, speed, and thoroughness of a 3-DD cycle. Three values ship: standard (default since v1.4 — demo/prototype, fastest), pro (real project, balanced), max (production launch, all-in 143 agents).",
0 commit comments