Browse Source

GOALS.md: add proposed G-047 - declared primary VCS field in punkproject.toml

Assisted-by: harness=opencode; primary-model=openrouter/z-ai/glm-5.2; api-location=openrouter.ai
master
Julian Noble 6 days ago
parent
commit
381f5b453c
  1. 5
      GOALS.md

5
GOALS.md

@ -326,3 +326,8 @@ Scope: src/modules/punk/args-999999.0a1.0.tm (resolve/get_dict: display-field de
Detail: goals/G-046-punkargs-deferred-help-and-fixes.md
Goal: argument resolution no longer processes -help and other display-only fields - their tstr expansion is deferred to display time (separately cached, per the existing in-source review notes) - so first parse of heavily documented commands gets measurably faster and definitions whose -help calls punk::args-parsing commands (the punk::ansi::mark_columns class) neither loop nor stall; alongside, the mechanical defects pinned by the characterization suites are fixed: @dynamic double-substituted multiline values align at their insertion column, prefix-normalized choice values keep the same shape as exact input, the -return string renderer aligns cmd-help continuations under the first line, and the misleading goodargs parse-error prefix in 'i <cmd> <args>' output is fixed.
Acceptance: parsing/argument resolution provably skips -help expansion (a definition whose -help contains a ${[...]} that would error or record its invocation shows the substitution did NOT run during a parse-only path, only for help display); first parse of punk::ansi::mark_columns drops from ~4s to well under a second with 'i punk::ansi::mark_columns' still rendering the embedded example, and a -help that parses its OWN definition id resolves or errors cleanly rather than looping; first-parse timing improves for at least one other heavily documented command (recorded in the detail file); rendering_atdynamic_multiline_help_insertion_GAP flips to all-aligned; choicegroups_imap_prefix_listwrap_GAP flips to shape-identical (prefix input yields the same plain string as exact input); the -return string renderer's cmd-help continuations align under the first line with relative indents preserved (rendering_string_renderer_characterization updated); the 'Bad number of leading values...' prefix shown by goodargs parsing in 'i string is'-style output is reworded or suppressed for the usage-display path; full punk::args and punk::ns suites pass with no non-GAP expectations weakened.
### G-047 [proposed] Declared primary VCS field in punkproject.toml
Scope: punkproject.toml (schema), root AGENTS.md (Commit Conventions (any VCS) section), src/project_layouts/ (layout template payload - default values only; project.new validation is follow-on work)
Goal: a `[workflow] vcs = "<system>"` field in punkproject.toml declares the team's primary upstream VCS - the default target for unqualified "commit"/"checkin" requests and the system new commits land in first, with the secondary (when present) caught up via batched checkins - so agents and tooling read the declared field rather than guessing from filesystem presence or hardcoded defaults; punkshell itself carries `[workflow] vcs = "git"` and derived-project layout templates carry their own default (fossil).
Acceptance: punkshell's punkproject.toml contains `[workflow] vcs = "git"` and root AGENTS.md "Commit Conventions (any VCS)" names the field as the preferred source with the existing prose as fallback for projects without the field; a reader (agent or tool) resolving the primary VCS for a project root (anchored via the punk::repo::is_project_root marker, not a naive walk-up) trusts the field when present and falls back to filesystem detection when absent; a subproject's own punkproject.toml under the root tree is not confused for the root project's declaration (proven by a root-anchored reader ignoring a nested punkproject.toml's `[workflow] vcs`); the field is documented as advisory to G-016's projects.work discovery (detection remains the fallback); punkproject.toml version is patch-bumped with a CHANGELOG entry for the schema addition; make.tcl/project.new validation of the field against detected VCS systems is explicitly out of scope here (follow-on work).

Loading…
Cancel
Save