Skip to content

Distill figure revision heuristics - #1

Merged
Jinghao-coding merged 1 commit into
mainfrom
agent/distill-figure-feedback
Aug 1, 2026
Merged

Jinghao-coding merged 1 commit into
mainfrom
agent/distill-figure-feedback

Conversation

@Jinghao-coding

@Jinghao-coding Jinghao-coding commented Aug 1, 2026 •

Copy link
Copy Markdown
Owner

What

  • separate semantic evidence from style-only references and reconcile outdated figures before style transfer
  • turn critique such as flowchart-like, over-abstract, rigid, loose, or connector-heavy into structural repair choices
  • derive module boundaries from ownership and update authority while treating visual prominence separately
  • add claim-critical edge inventories, micro-glyph assumption checks, connector-escalation guidance, aggregate-statistic fidelity, and whitespace diagnostics
  • add Markdown-fragment and public-path/thread-ID tests

Why

Recent figure-revision work exposed reusable failure modes that were not explicit enough in the skill. This change generalizes those lessons without retaining project-specific mechanisms, names, paths, figures, or values.

Validation

  • 14 unit tests pass
  • official skill validator passes
  • staged diff formatting passes
  • three fresh-context adversarial tests cover outdated source figures, independently owned configuration services, and dense protocols whose claim-critical message edges must remain visible
  • independent release audit: GO

Summary by Sourcery

Clarify and strengthen figure-revision guidance to preserve semantics during style transfer, handle critique as structural evidence, and enforce mode-aware completion and documentation constraints.

New Features:

  • Add explicit logic-preserving style-transfer and semantic-rank prompts and addenda for generation workflows.
  • Introduce detailed iteration rules for translating critique into structural repairs, connector escalation, and micro-example auditing.
  • Define new figure grammars for field-provenance maps and parameterized contracts/ledgers, including abstraction calibration guidance.

Enhancements:

  • Refine the Revise mode to support planning-only revision contracts distinct from semantic image edits.
  • Expand visual-system, validation, and contracts references to distinguish semantic vs style authority, module boundaries, edge inventories, and glyph meanings.
  • Improve guidance on ownership, causal independence, update authority, and semantic rank in composition and encoding rules.
  • Tighten multi-panel and grammar guidance to avoid false sequence, incompatible grammars, and slide-like layouts.

Documentation:

  • Broaden English and Chinese READMEs and reference docs with semantics-first style-transfer rules, critique-driven iteration heuristics, semantic-rank geometry, and new figure grammar examples.

Tests:

  • Add tests enforcing SKILL.md conciseness, contents sections for long reference documents, correct Markdown fragment links, and absence of user-specific paths or thread IDs in public docs.

@sourcery-ai

sourcery-ai Bot commented Aug 1, 2026 •

Copy link
Copy Markdown

Reviewer's Guide

Strengthens the systems-paper figurecraft skill by separating semantic vs style authority, adding semantic-rank/edge-inventory and micro-glyph guidance, refining revise-mode behavior and iteration rules, expanding figure grammars for provenance/contracts, and enforcing documentation hygiene via new tests.

Flow diagram for revised Revise mode semantics and completion evidence

flowchart TD
  U[User request] --> M[Select mode]
  M -->|Revise| R[Revise mode]
  R --> Q{"User asks for plan/critique only?"}
  Q -->|Yes| P[Planning-only revision]
  Q -->|No| E[Semantic asset revision]

  P --> PD[Diagnosis + revision contract]
  PD --> PG[Mark asset gates as N/A]

  E --> SE[Bounded semantic edits]
  SE --> VC[Semantic + visual checks]
  VC --> CG[Consistency + compiled-paper gates]

  style U fill:#f5f5f5,stroke:#333
  style M fill:#f5f5f5,stroke:#333
  style R fill:#f5f5f5,stroke:#333
  style Q fill:#fff8e1,stroke:#333
  style P fill:#e3f2fd,stroke:#333
  style E fill:#e3f2fd,stroke:#333
  style PD fill:#e8f5e9,stroke:#333
  style PG fill:#e8f5e9,stroke:#333
  style SE fill:#e8f5e9,stroke:#333
  style VC fill:#e8f5e9,stroke:#333
  style CG fill:#e8f5e9,stroke:#333
Loading

Flow diagram for semantic vs style authority in figure generation

flowchart TD
  PT[Paper text + captions] --> RV[Resolve with user's confirmed target version]
  RV -->|Reconciled| SF[Reconciled source figure]

  SF --> SA[Semantic authority]
  SA --> GP[Generation prompt]

  ST[Style reference image] --> STA[Style authority - visual tokens only]
  STA --> GP

  GP --> FG[Generated figure]

  subgraph Semantic_channels
    SA
  end

  subgraph Style_channels
    STA
  end

  style PT fill:#f5f5f5,stroke:#333
  style RV fill:#fff8e1,stroke:#333
  style SF fill:#f5f5f5,stroke:#333
  style SA fill:#e3f2fd,stroke:#333
  style ST fill:#f5f5f5,stroke:#333
  style STA fill:#e3f2fd,stroke:#333
  style GP fill:#e8f5e9,stroke:#333
  style FG fill:#e8f5e9,stroke:#333
Loading

File-Level Changes

Change Details Files
Refine iteration guidance to translate qualitative critique into structural repairs, connector escalation, and micro-example auditing, plus updated durable rules.
  • Update iteration-playbook intro to list richer failure symptoms and add a contents section.
  • Replace the generic failure-pattern table with a critique-to-structure table mapping common feedback to diagnoses and structural responses.
  • Add explicit connector failure escalation steps focused on reverting to last accepted images and redesigning geometry.
  • Add a micro-example audit checklist to verify chip/tile/checkmark semantics and aggregate vs item-level claims.
  • Extend durable rules to emphasize preserving semantic source during style migration, macro vs internal geometry independence, semantic rank vs prominence, connector stability, and whitespace diagnostics.
skills/systems-paper-figurecraft/references/iteration-playbook.md
Strengthen generation prompts with explicit semantic vs style authority, semantic-rank/edge inventory, glyph meaning, and connector-edit escalation via new addenda.
  • Extend mother-layout template with reference authority, splitting semantic authority (reconciled source figure) from style authority (token library only).
  • Add guidance on deriving independent boundaries from ownership/causal independence/update authority, separating prominence, and listing common rank patterns.
  • Introduce macro-edge inventory and micro-edge policy sections, plus claim-bearing glyph ledger and forbidden implied assumptions.
  • Tighten hard constraints around decorative glyphs and item-level examples that imply unsupported semantics.
  • Add logic-preserving style-transfer addendum and semantic-rank/edge-inventory addendum sections.
  • Clarify surgical-edit template to recommend geometry redesign when connector edits repeatedly misroute edges.
skills/systems-paper-figurecraft/references/generation-prompts.md
Evolve SKILL mode semantics to support planning-only revision contracts, explicit semantic vs style authority, rank patterns, glyph meaning, and connector-stability guidance.
  • Update Revise mode to distinguish read-only revision contracts from bounded semantic edits.
  • Clarify completion gates to be mode-aware, marking planning-only revision asset checks as N/A.
  • Extend figure brief requirements to capture semantic vs style authority, relationship rank patterns, glyph meanings, and connector semantics.
  • Clarify reference reuse to reconcile paper text/captions with user target version before style transfer, treating source figure as semantic authority and style reference as token library.
  • Add planning guidance to split panels when shared canvases imply false sequence or incompatible grammars and to calibrate abstraction between card pipelines and concept art.
  • Add rules for ownership/independence/authority-driven boundaries, complete macro/micro edge inventories, and micro-example semantics.
  • Extend generation and iteration sections with explicit semantic/style authority in prompts, edge listings, glyph meaning, and connector-redesign escalation.
  • Update validation and completion-evidence sections to reference the iteration playbook for new failure modes and to detail planning-only revision outputs.
skills/systems-paper-figurecraft/SKILL.md
README_en.md
README.md
Introduce new figure grammars for field-provenance maps and parameterized contracts/ledgers, including abstraction calibration and canvas-splitting rules.
  • Add a Fields, provenance, and contracts section with field-provenance map and parameterized contract/ledger grammars, including when to choose each and how to avoid arrow spaghetti or mis-ranked metadata.
  • Add abstraction calibration guidance between literal/generic card flows and organic concept art, favoring structured technical primitives.
  • Update multi-panel guidance to split figures when shared canvases impose false sequence or force incompatible grammars, even when labels are legible.
  • Expose these grammars and questions in English and Chinese READMEs under supported figure types.
skills/systems-paper-figurecraft/references/figure-grammars.md
README_en.md
README.md
Document semantic-rank geometry and meaning-bearing micro-geometry within the visual-system reference, including macro/micro edge inventories and decorative-glyph rejection.
  • Add semantic-rank and attachment guidance deriving boundaries from ownership/independence/update authority/addressability and separating prominence from structure with common patterns.
  • Clarify treatment of configuration payloads vs peer services and status vs structural color.
  • Introduce a meaning-bearing micro-geometry section requiring explicit meaning for chips/lines/mini-graphs/tiles, marking guides as non-semantic, and rejecting decorative micro-geometry and unsupported item-level examples.
  • Extend composition guidance to define macro/micro edge inventories, priorities, and visibility requirements for claim-critical edges.
skills/systems-paper-figurecraft/references/visual-system.md
Strengthen validation rules around semantic rank, glyph meaning, micro-examples, edge inventories, and geometry, including bus vs aggregation spine distinctions.
  • Add failure conditions for decorative glyphs and repeated items that imply unsupported mechanisms, and for boundaries that contradict ownership/independence/update authority/addressability.
  • Extend semantic checks to derive boundaries from ownership/independence/authority, treat rank patterns as common motifs, explain glyph meanings vs neutral guides, and verify micro-examples and aggregate statistics semantics.
  • Update geometry/whitespace validation to reverify endpoints after label/row moves, preserve claim-critical edges, manage fan-out trunks without implying runtime buses, and avoid unsupported one-to-one mappings from alignment.
  • Add abstraction checks ensuring figures sit between generic card flowcharts and organic concept art, plus encoding checks that keep structural shell color distinct from status accents and avoid mis-encoding estimates as validity states.
skills/systems-paper-figurecraft/references/validation.md
Extend figure contracts to capture semantic vs style authority, rank patterns, macro/micro edge inventories, glyph meaning, forbidden assumptions, and aggregate/statistical semantics.
  • Add semantic authority and style authority fields to the figure contract template.
  • Expand objects/edges sections with interaction mode and independent-boundary vs visual-emphasis bases and common rank patterns.
  • Add macro-edge inventory and micro-edge policy fields, glyph/mini-example meaning vs neutral guides, forbidden implied assumptions, and aggregate/statistical field semantics.
  • Extend encoding-ledger guidance to include semantic rank encodings and to keep metadata subordinate when defined as conditioning payload while allowing peer rank for independent services/state, with grayscale survivability checks.
skills/systems-paper-figurecraft/references/contracts.md
Add tests enforcing SKILL.md conciseness, contents sections for long references, fragment-link validity, and absence of user paths or thread IDs in public docs.
  • Add a test limiting SKILL.md to 500 lines to keep the skill body concise.
  • Add a test requiring a Contents section in any reference markdown file with more than 100 lines.
  • Add a test to collect headings and ensure all internal markdown fragment links resolve within README and skill markdown documents.
  • Add a test verifying that public docs contain no absolute user filesystem paths or UUID-like thread IDs.
tests/test_skill_package.py

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@Jinghao-coding
Jinghao-coding marked this pull request as ready for review August 1, 2026 15:12
Copilot AI review requested due to automatic review settings August 1, 2026 15:12
@Jinghao-coding
Jinghao-coding merged commit 41527ba into main Aug 1, 2026
6 checks passed

@sourcery-ai sourcery-ai 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.

Hey - I've found 3 issues, and left some high level feedback:

  • The test_markdown_fragment_links_resolve slug logic manually normalizes headings and may diverge from the actual Markdown renderer’s anchor rules, especially for punctuation and non-ASCII titles (e.g., in the Chinese README); consider using a library or matching the renderer’s algorithm more closely to avoid false failures.
  • The test_skill_body_stays_concise check hard-codes a 500-line limit on SKILL.md, which makes test outcomes sensitive to formatting and wrapping rather than semantic size; you might instead base this on a rough word count or exclude boilerplate sections to avoid brittle failures when the file is reformatted.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The `test_markdown_fragment_links_resolve` slug logic manually normalizes headings and may diverge from the actual Markdown renderer’s anchor rules, especially for punctuation and non-ASCII titles (e.g., in the Chinese README); consider using a library or matching the renderer’s algorithm more closely to avoid false failures.
- The `test_skill_body_stays_concise` check hard-codes a 500-line limit on SKILL.md, which makes test outcomes sensitive to formatting and wrapping rather than semantic size; you might instead base this on a rough word count or exclude boilerplate sections to avoid brittle failures when the file is reformatted.

## Individual Comments

### Comment 1
<location path="tests/test_skill_package.py" line_range="62-71" />
<code_context>
+            if len(text.splitlines()) > 100:
+                self.assertIn("## Contents", text, reference.name)
+
+    def test_markdown_fragment_links_resolve(self) -> None:
+        documents = [ROOT / "README.md", ROOT / "README_en.md", *SKILL_DIR.rglob("*.md")]
+        for document in documents:
+            text = document.read_text(encoding="utf-8")
+            headings = {
+                re.sub(r"[^\w\- ]", "", match.group(1))
+                .strip()
+                .lower()
+                .replace(" ", "-")
+                for match in re.finditer(r"^#{1,6}\s+(.+?)\s*$", text, re.MULTILINE)
+            }
+            for target in re.findall(r"\]\(#([^)]+)\)", text):
+                self.assertIn(target, headings, f"{document.name}: #{target}")
+
+    def test_public_docs_have_no_user_paths_or_thread_ids(self) -> None:
</code_context>
<issue_to_address>
**issue (testing):** Fragment link test is currently misaligned with heading normalization and may flag valid links as failures.

Heading slugs are normalized (strip, lowercase, spaces→dashes, punctuation removed), but the `target` extracted from `"](#...)"` is compared raw. This means `#Section-One` won’t match the normalized slug `section-one`, even though Markdown renderers treat it as equivalent. Please normalize `target` with the same slugging logic (or factor out a shared slug function and compare those) before `assertIn`, so the test only fails on genuinely broken links, not casing or punctuation differences.
</issue_to_address>

### Comment 2
<location path="tests/test_skill_package.py" line_range="77-80" />
<code_context>
+            for target in re.findall(r"\]\(#([^)]+)\)", text):
+                self.assertIn(target, headings, f"{document.name}: #{target}")
+
+    def test_public_docs_have_no_user_paths_or_thread_ids(self) -> None:
+        documents = [ROOT / "README.md", ROOT / "README_en.md", *SKILL_DIR.rglob("*.md")]
+        text = "\n".join(path.read_text(encoding="utf-8") for path in documents)
+        self.assertIsNone(re.search(r"/(?:Users|home)/[^/\s]+/", text))
+        self.assertIsNone(
+            re.search(
+                r"\b[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\b",
</code_context>
<issue_to_address>
**suggestion:** Extend the public-docs safety test to cover Windows-style user paths as an additional edge case.

Currently the test only flags POSIX-style user paths and UUID-like thread IDs. To also catch Windows user-local paths, add a regex for patterns like `C:\Users\<name>\...` (e.g. `r"[A-Za-z]:\\Users\\[^\\\s]+\\"`) so the "no user paths" requirement is enforced consistently across platforms.

```suggestion
        documents = [ROOT / "README.md", ROOT / "README_en.md", *SKILL_DIR.rglob("*.md")]
        text = "\n".join(path.read_text(encoding="utf-8") for path in documents)
        # POSIX-style user/home paths
        self.assertIsNone(re.search(r"/(?:Users|home)/[^/\s]+/", text))
        # Windows-style user-local paths (e.g. C:\Users\username\...)
        self.assertIsNone(re.search(r"[A-Za-z]:\\Users\\[^\\\s]+\\", text))
        self.assertIsNone(
```
</issue_to_address>

### Comment 3
<location path="skills/systems-paper-figurecraft/references/iteration-playbook.md" line_range="92-94" />
<code_context>
+   model repeatedly cannot route correctly.
+
+Collapsing internal edges is allowed only when containment, attachment, or
+aligned fields makes the relationship unambiguous and the reader does not need
+the internal dependency to verify the claim.
+
</code_context>
<issue_to_address>
**issue (typo):** Fix subject–verb agreement in the "Collapsing internal edges" sentence.

The compound subject "containment, attachment, or aligned fields" is plural, so the verb should be "make" instead of "makes" ("…containment, attachment, or aligned fields make the relationship unambiguous…").

```suggestion
Collapsing internal edges is allowed only when containment, attachment, or
aligned fields make the relationship unambiguous and the reader does not need
the internal dependency to verify the claim.
```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment on lines +62 to +71
def test_markdown_fragment_links_resolve(self) -> None:
documents = [ROOT / "README.md", ROOT / "README_en.md", *SKILL_DIR.rglob("*.md")]
for document in documents:
text = document.read_text(encoding="utf-8")
headings = {
re.sub(r"[^\w\- ]", "", match.group(1))
.strip()
.lower()
.replace(" ", "-")
for match in re.finditer(r"^#{1,6}\s+(.+?)\s*$", text, re.MULTILINE)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

issue (testing): Fragment link test is currently misaligned with heading normalization and may flag valid links as failures.

Heading slugs are normalized (strip, lowercase, spaces→dashes, punctuation removed), but the target extracted from "](#...)" is compared raw. This means #Section-One won’t match the normalized slug section-one, even though Markdown renderers treat it as equivalent. Please normalize target with the same slugging logic (or factor out a shared slug function and compare those) before assertIn, so the test only fails on genuinely broken links, not casing or punctuation differences.

Comment on lines +77 to +80
documents = [ROOT / "README.md", ROOT / "README_en.md", *SKILL_DIR.rglob("*.md")]
text = "\n".join(path.read_text(encoding="utf-8") for path in documents)
self.assertIsNone(re.search(r"/(?:Users|home)/[^/\s]+/", text))
self.assertIsNone(

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

suggestion: Extend the public-docs safety test to cover Windows-style user paths as an additional edge case.

Currently the test only flags POSIX-style user paths and UUID-like thread IDs. To also catch Windows user-local paths, add a regex for patterns like C:\Users\<name>\... (e.g. r"[A-Za-z]:\\Users\\[^\\\s]+\\") so the "no user paths" requirement is enforced consistently across platforms.

Suggested change
documents = [ROOT / "README.md", ROOT / "README_en.md", *SKILL_DIR.rglob("*.md")]
text = "\n".join(path.read_text(encoding="utf-8") for path in documents)
self.assertIsNone(re.search(r"/(?:Users|home)/[^/\s]+/", text))
self.assertIsNone(
documents = [ROOT / "README.md", ROOT / "README_en.md", *SKILL_DIR.rglob("*.md")]
text = "\n".join(path.read_text(encoding="utf-8") for path in documents)
# POSIX-style user/home paths
self.assertIsNone(re.search(r"/(?:Users|home)/[^/\s]+/", text))
# Windows-style user-local paths (e.g. C:\Users\username\...)
self.assertIsNone(re.search(r"[A-Za-z]:\\Users\\[^\\\s]+\\", text))
self.assertIsNone(

Comment on lines +92 to +94
Collapsing internal edges is allowed only when containment, attachment, or
aligned fields makes the relationship unambiguous and the reader does not need
the internal dependency to verify the claim.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

issue (typo): Fix subject–verb agreement in the "Collapsing internal edges" sentence.

The compound subject "containment, attachment, or aligned fields" is plural, so the verb should be "make" instead of "makes" ("…containment, attachment, or aligned fields make the relationship unambiguous…").

Suggested change
Collapsing internal edges is allowed only when containment, attachment, or
aligned fields makes the relationship unambiguous and the reader does not need
the internal dependency to verify the claim.
Collapsing internal edges is allowed only when containment, attachment, or
aligned fields make the relationship unambiguous and the reader does not need
the internal dependency to verify the claim.

Copilot AI 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.

Pull request overview

This PR distills new, reusable heuristics for revising systems-paper figures by explicitly separating semantic authority from style references, translating qualitative critique into concrete structural repair actions, and tightening validation and prompting guidance accordingly.

Changes:

  • Expanded the core skill guidance (modes, completion gates, revision-contract behavior) and added semantic-rank / edge-inventory / micro-glyph auditing rules.
  • Added/updated reference docs (visual system, validation, iteration playbook, figure grammars, prompt templates, contracts) to encode the new heuristics and new “field-provenance / contract-ledger” grammars.
  • Added unit tests enforcing skill conciseness, contents sections for long references, intra-doc fragment link validity, and absence of user paths / UUID-like thread IDs in public docs.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/test_skill_package.py Adds packaging/docs quality gates (size, contents sections, fragment links, privacy scans).
skills/systems-paper-figurecraft/SKILL.md Updates mode semantics and completion gates; adds authority separation, semantic rank, edge inventories, and connector escalation guidance.
skills/systems-paper-figurecraft/references/visual-system.md Adds semantic-rank/attachment and micro-geometry semantics guidance; extends whitespace/edge inventory rules.
skills/systems-paper-figurecraft/references/validation.md Strengthens semantic/visual validation with boundary-authority checks, micro-example semantics, aggregate-stat fidelity, and connector/edge-inventory checks.
skills/systems-paper-figurecraft/references/iteration-playbook.md Replaces generic failure table with critique→structural repair mapping, connector escalation steps, and micro-example audit checklist.
skills/systems-paper-figurecraft/references/generation-prompts.md Adds explicit semantic-vs-style authority sections plus addenda for logic-preserving style transfer and semantic-rank/edge inventories; updates edit escalation.
skills/systems-paper-figurecraft/references/figure-grammars.md Introduces “fields/provenance/contracts” grammar family and abstraction calibration rules; updates split-panel guidance.
skills/systems-paper-figurecraft/references/contracts.md Extends briefs/ledgers to capture semantic authority, rank patterns, edge inventories, glyph semantics, and aggregate/statistical semantics.
README.md Updates Chinese highlights/mode semantics and adds new grammar + iteration heuristics.
README_en.md Updates English highlights/mode semantics and adds iteration rules reflecting the new heuristics.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b5d86badc0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

def test_public_docs_have_no_user_paths_or_thread_ids(self) -> None:
documents = [ROOT / "README.md", ROOT / "README_en.md", *SKILL_DIR.rglob("*.md")]
text = "\n".join(path.read_text(encoding="utf-8") for path in documents)
self.assertIsNone(re.search(r"/(?:Users|home)/[^/\s]+/", text))

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Cover common agent paths in the privacy check

When documentation is generated in a typical Codex container, private absolute paths commonly start with /root/ or /workspace/, but this regex only rejects Unix /home/... and /Users/... paths. As a result, strings such as /root/private-paper/figure.png pass while the test claims to prevent user-path disclosure; extend the detector to cover these homes and Windows-style user paths as well.

Useful? React with 👍 / 👎.

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.

2 participants