From 4a8e2f1cd0a1d156ac485fd084230da8c407b152 Mon Sep 17 00:00:00 2001 From: Miao Yang Date: Tue, 23 Jun 2026 22:15:20 +0800 Subject: [PATCH] chore(lint): keep the fallow audit gate green MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Extract rootClassStyledSelectors so the subcomposition_root_styled_by_class rule drops below the complexity threshold, and ignore the music-to-video reference HTML (template + motion-primitive materials forked by path, not import-graph reachable) — same treatment as motion-graphics/grounding. Co-Authored-By: Claude Opus 4.8 (1M context) --- .fallowrc.jsonc | 3 +++ packages/core/src/lint/rules/composition.ts | 23 ++++++++++++++------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/.fallowrc.jsonc b/.fallowrc.jsonc index 27ae87f2c..30e0a27aa 100644 --- a/.fallowrc.jsonc +++ b/.fallowrc.jsonc @@ -59,6 +59,9 @@ // prose), not import-graph reachable. "skills/motion-graphics/grounding/**", "skills/motion-graphics/categories/**", + // Agent-invoked reference materials (template + motion-primitive HTML, catalogs), + // forked by path by the frame-worker per SKILL.md prose, not import-graph reachable. + "skills/music-to-video/references/**", // Bundled @font-face data (read at runtime via fs.readFileSync, invisible // to the import graph) + its manual rebuild tool. "skills/**/fonts/**", diff --git a/packages/core/src/lint/rules/composition.ts b/packages/core/src/lint/rules/composition.ts index 9c76ab03a..63be85fa5 100644 --- a/packages/core/src/lint/rules/composition.ts +++ b/packages/core/src/lint/rules/composition.ts @@ -1,4 +1,4 @@ -import type { LintContext, HyperframeLintFinding } from "../context"; +import type { LintContext, HyperframeLintFinding, ExtractedBlock } from "../context"; import { findHtmlTag, readAttr, readJsonAttr, stripJsComments, truncateSnippet } from "../utils"; import { COMPOSITION_VARIABLE_TYPES } from "../../core.types"; @@ -63,6 +63,19 @@ function leftmostCompoundClasses(selector: string): string[] { return (leftmost.match(/\.([\w-]+)/g) ?? []).map((c) => c.slice(1)); } +// Distinct selectors across all