Skip to content

skill file improvement - #67

Open
nickhuo wants to merge 7 commits into
integration/porting-corpus-pr53-54-57-2from
nickhuo/porting-skill-car-layout
Open

skill file improvement#67
nickhuo wants to merge 7 commits into
integration/porting-corpus-pr53-54-57-2from
nickhuo/porting-skill-car-layout

Conversation

@nickhuo

@nickhuo nickhuo commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review (1)
  • main

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: c33608de-d0bd-429b-b810-decfac3e385e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@nickhuo nickhuo changed the title [Improvement] Port the porting skill to the .car layout skill file improvement Sep 3, 2026
@nickhuo
nickhuo force-pushed the nickhuo/car-artifact-layout branch from 106b9ac to 872d72b Compare September 3, 2026 20:33
@nickhuo
nickhuo force-pushed the nickhuo/porting-skill-car-layout branch from b48ae85 to 42a6efe Compare September 3, 2026 23:12
@nickhuo
nickhuo changed the base branch from nickhuo/car-artifact-layout to integration/porting-corpus-pr53-54-57-2 September 3, 2026 23:12
…alidator

SKILL.md was carrying three things that only matter once: the step-1 survey
list, the rules for refreshing an existing `.car/app`, and adapter prose that
adapter.md already gates. All three move out, and SKILL.md keeps the decision
and the pointer.

- references/source-survey.md: the survey, read after preparing the copy and
  before choosing service boundaries.
- references/refresh.md: read when `.car/app` exists and the source moved on.

prepare.py grows `--refresh`, which updates source-owned files while preserving
port edits and stops atomically when both sides changed one path -- the case
that silently loses an adapter. It now also rejects symbolic links, which
either escape the self-contained artifact or are skipped by the runtime sweep,
so neither outcome is worth carrying.

validate.py splits into a validation package rather than growing further:

  core.py            result and YAML primitives
  manifest.py        the public artifact contract, fail-closed
  python_source.py   static source discovery for adapter and packaging checks
  runtime.py         runtime capabilities and dependency facts

references/manifest.md gains the `canyonos config` View/Change review flow and
re-scopes its opening: the validator checks YAML structure and the artifact
contract before an approved deploy, so this reference explains how to derive
the values rather than what the build will reject.

(cherry picked from commit d2c82d6bfab4e0ffcb1d12b64b2470eb529be981)
…r exists

validate.py still held nineteen of the twenty-five checks after the last split,
so `validation/` was a helper package with one very large caller rather than a
set of checks. The remaining check functions move out by the section boundaries
the file already had:

  validation/adapter.py       V006-V010  adapter faults _load_agent swallows
  validation/workflow.py      V016-V018, V023  the workflow and how it
                              reaches an agent
  validation/entrypoint.py    V019, V020, V033-V035  traps set by which
                              module the entrypoint names
  validation/packaging.py     V030-V031  credentials and import roots
  validation/dependencies.py  W003, W006  credentials and imports a
                              successful build does not reject

`module_path` and the two import resolvers join python_source.py, which is
where the other static-source helpers already live; both resolvers were private
and are now shared by packaging.py and dependencies.py, so they lose the
underscore. validate.py keeps argparse, the driver, and report printing: 1153
lines to 311.

This is a pure move. All twenty-four relocated definitions are AST-identical to
their originals, and ten fixtures covering every check code that lives outside
manifest.py -- V002, V006-V010, V016-V020, V023, V030-V035, W003, W006 --
produce byte-identical `--json` output before and after.

Four references still cited hard-rule labels by number:

  references/adapter.md     M18
  references/llm-proxy.md   M18, M21
  references/manifest.md    M22, M23

The M1-M32 table went away when SKILL.md gained `## Source-integrity
boundary`, which restates the four rules static analysis cannot prove and
drops the twenty-eight the validator now checks itself. The rules survived; the
labels did not, so each citation named a table a reader could not find. They
now name the boundary.

Also drops nine dead `# noqa: E402` directives and sorts the new modules'
imports, which nets the skill's scripts down from twelve ruff findings to
seven. The seven that remain are in prepare.py and runtime.py and predate this
change.

(cherry picked from commit 7cfbece8cb84a2bb591aa88d346a4742a95fb540)
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