-
Notifications
You must be signed in to change notification settings - Fork 250
feat: prepare beta.11 configuration and native UX #253
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -1340,7 +1340,21 @@ async function updateSingleProject( | |
| const reportedInstallMode = targets.every((target) => nativeProject && target.scope === 'project') | ||
| ? 'copy' | ||
| : selectedInstallMode; | ||
| const classicArtifactLayout = projectConfig?.classic?.artifact_layout ?? 'legacy'; | ||
| const rawClassic = projectConfigDocument?.value.classic; | ||
| const explicitClassicArtifactLayout = | ||
| rawClassic !== null && | ||
| typeof rawClassic === 'object' && | ||
| !Array.isArray(rawClassic) && | ||
| ((rawClassic as Record<string, unknown>).artifact_layout === 'legacy' || | ||
| (rawClassic as Record<string, unknown>).artifact_layout === 'docs') | ||
| ? ((rawClassic as Record<string, unknown>).artifact_layout as 'legacy' | 'docs') | ||
| : null; | ||
| const classicArtifactLayout = | ||
| explicitClassicArtifactLayout ?? | ||
| ((await fileExists(path.join(projectPath, 'openspec'))) && | ||
| !(await fileExists(path.join(projectPath, 'docs', 'openspec'))) | ||
| ? 'legacy' | ||
| : 'docs'); | ||
|
Comment on lines
+1343
to
+1357
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
echo "== files =="
git ls-files | rg '(^app/commands/update\.ts$|^domains/.*comet[-_]?classic|classic)' | head -200
echo "== update outline =="
ast-grep outline app/commands/update.ts --view compact | sed -n '1,220p'
echo "== relevant update lines =="
sed -n '1310,1375p' app/commands/update.ts
sed -n '1770,1810p' app/commands/update.ts
echo "== classic resolver references =="
rg -n "artifact_layout|classicArtifactLayout|classic.*layout|openspec|docs.*openspec|legacy|docs" app/commands/update.ts domains app -g '*.ts' | head -200Repository: rpamis/comet Length of output: 11661 🏁 Script executed: #!/bin/bash
set -euo pipefail
echo "== update relevant code =="
sed -n '1320,1365p' app/commands/update.ts
sed -n '1760,1810p' app/commands/update.ts
echo "== classic layout domain files =="
wc -l domains/comet-classic/classic-layout*.ts domains/comet-classic/classic-project-config.ts test/domains/comet-classic/classic-layout*.ts
sed -n '1,260p' domains/comet-classic/classic-layout.ts
sed -n '1,220p' domains/comet-classic/classic-layout-initialization.ts
sed -n '1,220p' domains/comet-classic/classic-project-config.ts
echo "== layout config tests =="
sed -n '1,260p' test/domains/comet-classic/classic-layout.test.ts
sed -n '1,260p' test/domains/comet-classic/classic-layout-initialization.test.ts
rg -n "artifact_layout|docs.*openspec|openspec|legacy|classic.*layout|ProjectPath|projectPath" test/domains/comet-classic/classic-layout*.ts domains/comet-classic/classic-layout*.ts test/repository/classic-layout-documentation.test.ts test app/commands/update.ts -g '*.ts' | head -300Repository: rpamis/comet Length of output: 50368 将 Classic 布局解析下沉到
🤖 Prompt for AI AgentsSource: Coding guidelines |
||
| const refreshClassicArtifactRoot = | ||
| includesProjectScope && classicProject && targets.some((target) => target.scope === 'project'); | ||
| let classicLayoutInitializationPermit: ClassicLayoutInitializationPermit | undefined; | ||
|
|
@@ -1777,7 +1791,7 @@ async function updateSingleProject( | |
| await mergeProjectConfig( | ||
| configRoot, | ||
| languageId ? languageToArtifactLanguage(languageId) : null, | ||
| 'legacy', | ||
| scope === 'project' ? classicArtifactLayout : 'docs', | ||
| scope === 'project', | ||
| scope === 'project' && classicProject, | ||
| ); | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
Repository: rpamis/comet
Length of output: 429
🏁 Script executed:
Repository: rpamis/comet
Length of output: 5245
为 Comet 工作流保留 Superpowers Skill 例外
AGENTS.md 和 CLAUDE.md 现在都要求 Superpowers Skill 必须经用户显式同意,但
eval/local/skills/benchmarks/dependency/claude-md/comet-workflow/CLAUDE.md明确规定 Comet 工作流在涉及 OpenSpec/Superpowers 依赖 Skill 时必须调用它。把这两条规则直接并列会阻碍正常 /comet 执行;应说明用户调用/comet即视为授权,或为仓库自有 Comet 工作流单独增加例外。📍 Affects 2 files
AGENTS.md#L221-L222(this comment)CLAUDE.md#L219-L220🤖 Prompt for AI Agents