Skip to content

refactor: restructure project layout ahead of the full harness rebuild#9

Merged
hoainho merged 1 commit into
mainfrom
refactor/stage-prefixed-script-names
Jul 20, 2026
Merged

refactor: restructure project layout ahead of the full harness rebuild#9
hoainho merged 1 commit into
mainfrom
refactor/stage-prefixed-script-names

Conversation

@hoainho

@hoainho hoainho commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Renames scripts/ -> forge/ and references/ -> grimoire/, reorganizes both into pipeline-stage/functional subfolders, differentiates naming from the shared upstream lineage, and drops the stale PROMOTION.md. Verified via forge/tests/test_pipeline.py (19/19 pass) with zero broken references.

Renames scripts/ -> forge/ and references/ -> grimoire/, reorganizes both
into pipeline-stage/functional subfolders, differentiates naming from the
shared upstream lineage, and drops the stale PROMOTION.md. Verified via
forge/tests/test_pipeline.py (19/19 pass) with zero broken references.
@hoainho hoainho self-assigned this Jul 20, 2026
@hoainho
hoainho merged commit a2907eb into main Jul 20, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request reorganizes the project structure by moving documentation and rubrics from references/ to grimoire/, and relocating scripts from scripts/ to subdirectories under forge/. It also updates all internal references, help messages, error messages, and tests to reflect these new paths, and deletes the promotion playbook. The reviewer feedback correctly identifies several instances in documentation, CLI help text, warning messages, and error messages where the new forge/ or grimoire/ path prefixes were missed, ensuring complete consistency across the codebase.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread docs/UPGRADE_PLAN.md
- References: detail-inventory.md, character-reconstruction.md, likeness-maximization.md; procedural-patterns.md detail + character recipes; validation-rubric.md character suitability branch.
- Scripts: build_detail_inventory.py, extract_reference_landmarks.py, solve_reference_camera.py, delight_reference.py, bake_projected_texture.py.
- Gates: stage2_spec/validate_sculpt_spec.py detail-inventory gate (count + component/material linkage + gloss/fastener checks) and character track gate (anatomy + character feature targets); both backward compatible.
- References: intake/detail_inventory.md, character/reconstruction.md, character/likeness_maximization.md; build/geometry_patterns.md detail + character recipes; intake/validation_rubric.md character suitability branch.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The references listed here are missing the grimoire/ prefix. To maintain consistency with the rest of the document and the actual file structure, they should be prefixed with grimoire/.

Suggested change
- References: intake/detail_inventory.md, character/reconstruction.md, character/likeness_maximization.md; build/geometry_patterns.md detail + character recipes; intake/validation_rubric.md character suitability branch.
- References: grimoire/intake/detail_inventory.md, grimoire/character/reconstruction.md, grimoire/character/likeness_maximization.md; grimoire/build/geometry_patterns.md detail + character recipes; grimoire/intake/validation_rubric.md character suitability branch.

expected = completed_passes_from_history(spec, pass_order_ids or build_pass_ids)
if list(completed) != expected:
warnings.append("sculptPipeline.completedPasses is out of sync with reviewHistory; run sculpt_pass_orchestrator.py sync")
warnings.append("sculptPipeline.completedPasses is out of sync with reviewHistory; run stage3_build/orchestrate_passes.py sync")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The warning message suggests running stage3_build/orchestrate_passes.py sync, but since scripts are executed from the skill root, it should include the forge/ prefix to match the actual file structure.

Suggested change
warnings.append("sculptPipeline.completedPasses is out of sync with reviewHistory; run stage3_build/orchestrate_passes.py sync")
warnings.append("sculptPipeline.completedPasses is out of sync with reviewHistory; run forge/stage3_build/orchestrate_passes.py sync")

Comment on lines +126 to +127
parser.add_argument("--delit-image", help="Path to a de-lit albedo produced by stage1_intake/delight_albedo.py, if available")
parser.add_argument("--camera", help="Path to a referenceCamera JSON produced by stage1_intake/solve_camera_pose.py")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The help messages for --delit-image and --camera refer to script paths without the forge/ prefix. Since scripts are executed from the skill root, these paths should be prefixed with forge/ to avoid confusion.

    parser.add_argument("--delit-image", help="Path to a de-lit albedo produced by forge/stage1_intake/delight_albedo.py, if available")\n    parser.add_argument("--camera", help="Path to a referenceCamera JSON produced by forge/stage1_intake/solve_camera_pose.py")

raise ValueError(
f"build pass {requested_pass!r} is locked; complete {previous!r} first with "
"append_sculpt_review.py action=continue and browser screenshot evidence"
"stage4_review/append_review.py action=continue and browser screenshot evidence"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The error message is missing the forge/ prefix for stage4_review/append_review.py. It should be updated to forge/stage4_review/append_review.py to match the execution path from the skill root.

Suggested change
"stage4_review/append_review.py action=continue and browser screenshot evidence"
"forge/stage4_review/append_review.py action=continue and browser screenshot evidence"

raise ValueError(
"visual pass cannot use action=continue without --comparison-image; "
"create one with make_visual_comparison_sheet.py"
"create one with stage4_review/make_comparison_sheet.py"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The error message is missing the forge/ prefix for stage4_review/make_comparison_sheet.py. It should be updated to forge/stage4_review/make_comparison_sheet.py to match the execution path from the skill root.

Suggested change
"create one with stage4_review/make_comparison_sheet.py"
"create one with forge/stage4_review/make_comparison_sheet.py"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant