chore: sync workflow templates - #1230
Conversation
Automated sync from stranske/Workflows Template hash: 18397dc5e20f Changes synced from sync-manifest.yml
📝 WalkthroughWalkthroughUpdates the design system by adding CSS focus-visible and reduced-motion rules, adjusting font token ordering, hardening ChangesDesign System Updates
CI Action Pin Bump
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@design-system/README.md`:
- Line 50: The README.md file at line 50 contains ambiguous wording about where
design system updates should be made. The phrase "Update it here first" is
unclear when read from a consumer repository and could mislead users into
editing the consumer copy instead of the source template. Revise this sentence
to explicitly and clearly state that updates must be made to the source location
at stranske/Workflows/templates/consumer-repo/design-system/ first, before the
sync workflow propagates changes to consumer copies. This clarification will
prevent confusion about the source-of-truth and ownership of the design system
files.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 0f40a6ea-38fc-49fb-9065-4b7ade431551
📒 Files selected for processing (6)
.github/workflows/agents-guard.ymldesign-system/PRESENTATION_PATTERNS.mddesign-system/README.mddesign-system/components.cssdesign-system/ds_streamlit.pydesign-system/tokens.css
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
stranske/Workflows(auto-detected)stranske/Template(auto-detected)
📜 Review details
🧰 Additional context used
📓 Path-based instructions (5)
**/.github/workflows/**/!(*.md)
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
For workflow_call reusable workflows, do not use top-level permissions: block as it conflicts with caller permissions (documented in docs/INTEGRATION_GUIDE.md)
Files:
.github/workflows/agents-guard.yml
**/.github/workflows/*.{yml,yaml}
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
For startup_failure in workflows with zero jobs, check for invalid YAML syntax, invalid permission scopes, top-level permissions block on workflow_call, or circular workflow references
Files:
.github/workflows/agents-guard.yml
.github/workflows/*.yml
📄 CodeRabbit inference engine (CLAUDE.md)
.github/workflows/*.yml: In this consumer repository, keep most workflow logic instranske/Workflowsand only carry repo-specific configuration unless explicitly documented as an exception
First-party consumers should reference reusable workflows with@mainunless intentionally pinning to an exact commit SHA for a controlled reasonReference reusable workflows with
@mainin first-party consumers unless intentionally pinning to an exact commit SHA for a controlled reason
Files:
.github/workflows/agents-guard.yml
.github/workflows/agents-*.yml
📄 CodeRabbit inference engine (CLAUDE.md)
Agent workflow files (
agents-*.yml) are owned by Workflows; fix issues instranske/Workflows, not in this consumer repo
Files:
.github/workflows/agents-guard.yml
**/*.py
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Manager-Database repository uses Prefect 2.x - import schedules from prefect.client.schemas.schedules
Files:
design-system/ds_streamlit.py
🪛 LanguageTool
design-system/README.md
[uncategorized] ~50-~50: The official name of this software platform is spelled with a capital “H”.
Context: ...r Repos GitHub Actions workflow through .github/sync-manifest.yml. Update it here firs...
(GITHUB)
🔀 Multi-repo context stranske/Workflows, stranske/Template
Based on my exploration of the linked repositories, I can now provide my findings:
Linked repositories findings
stranske/Workflows
Design system sync source - contains updated ds_streamlit.py:
The source repository at stranske/Workflows contains the updated design system files at ./templates/consumer-repo/design-system/ that are being synced to consumer repositories. [::stranske/Workflows::]
Updated function signatures with potential breaking changes:
availability_badge(label: str)→availability_badge(label: str, *, plain: bool = True)— the new parameter is keyword-only with a default value. [::stranske/Workflows::]- New function
diagnostics_expander(label: str = "Diagnostics", *, expanded: bool = False)added to the API. [::stranske/Workflows::] empty_state(),notice()now HTML-escape all user-facing parameters (icon,title,desc,body,action) to prevent XSS. [::stranske/Workflows::]translate_error()now performs case-insensitive substring matching using.lower()for broader error matching. [::stranske/Workflows::]humanize_id()implementation replaced with new segment-based normalization logic using_human_label_segment()helper. [::stranske/Workflows::]
Sync manifest confirms design-system distribution:
The ./.github/sync-manifest.yml indicates ds_streamlit.py is a distributed design system component synced to all consumer repositories (like Manager-Database) with description: "Streamlit adapter for the design system (inject_theme/empty_state/notice/error/translate_error/dev_note/availability_badge/humanize_id)". [::stranske/Workflows::]
No active usage found in source:
Searches found no active calls to the updated functions in the Workflows repository itself, suggesting these are library functions intended for consumer app usage rather than Workflows-internal usage.
stranske/Template
Contains older version of ds_streamlit.py without recent changes:
The Template repo at ./design-system/ds_streamlit.py shows the previous API state where:
availability_badge(label: str)has NOplainparameter and always returns HTML badge markup [::stranske/Template::]notice()docstring statesactionis "optional markdown" (not escaped) [::stranske/Template::]translate_error()uses case-sensitive substring matching (e.g.,"No investable funds" in text) [::stranske/Template::]humanize_id()uses simple "tail" extraction with basic separator replacement [::stranske/Template::]diagnostics_expander()function does not exist [::stranske/Template::]
No direct consumers identified:
No usage of these design-system functions was found in the Template repository itself, indicating Template is primarily a reference/documentation repository rather than an active consumer.
Summary
This is a template sync PR that distributes updated design-system files from source (stranske/Workflows) to the consumer repository (stranske/Manager-Database). The key changes introduce:
-
Breaking change risk:
availability_badge()now has a newplainkeyword parameter. Any consumer apps calling it positionally will work (backward compatible), but apps that need to switch between plain-text and HTML rendering must adopt the new parameter. -
Security improvements: HTML escaping of user inputs in
empty_state()andnotice()protects against XSS in consumer apps. -
Matching behavior change:
translate_error()becomes case-insensitive, which may match exceptions differently than before. -
New API surface:
diagnostics_expander()is a new addition for P4 (diagnostics) pattern compliance.
The Template repo shows the older API, suggesting this is the first major update to the design system after its initial rollout.
🔇 Additional comments (6)
design-system/tokens.css (1)
29-29: LGTM!Also applies to: 74-74
design-system/components.css (1)
41-41: LGTM!Also applies to: 97-99
design-system/ds_streamlit.py (1)
29-30: LGTM!Also applies to: 93-98, 111-121, 137-149, 165-173, 174-184, 186-211
design-system/README.md (1)
1-1: LGTM!Also applies to: 41-41
design-system/PRESENTATION_PATTERNS.md (1)
17-24: LGTM!Also applies to: 33-33, 43-60, 84-84
.github/workflows/agents-guard.yml (1)
114-114: LGTM!Also applies to: 183-183
| ## Status & next step | ||
|
|
||
| **STAGED** here in the tracker. Graduates to `Workflows/templates/consumer-repo/design-system/` with a `sync-manifest.yml` entry (`is_directory: true`; base tokens `template_sync: exact`) as a deliberate Workflows PR — see [`../PLAN.md`](../PLAN.md) §3.3. Claude Design imports from the Workflows path once graduated, enabling the prototype-in-Design → land-in-repo round-trip. | ||
| This kit is managed from `Workflows/templates/consumer-repo/design-system/` and distributed by the Maint 68 Sync Consumer Repos GitHub Actions workflow through `.github/sync-manifest.yml`. Update it here first, then let the sync workflow replace consumer copies. |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Clarify source-of-truth wording to avoid consumer-repo edits
Line 50 says “Update it here first,” which is ambiguous in this consumer repository and can conflict with template ownership. Please explicitly direct updates to stranske/Workflows/templates/consumer-repo/design-system/ first.
Suggested wording
-This kit is managed from `Workflows/templates/consumer-repo/design-system/` and distributed by the Maint 68 Sync Consumer Repos GitHub Actions workflow through `.github/sync-manifest.yml`. Update it here first, then let the sync workflow replace consumer copies.
+This kit is managed from `stranske/Workflows/templates/consumer-repo/design-system/` and distributed by the Maint 68 Sync Consumer Repos GitHub Actions workflow through `.github/sync-manifest.yml`. Update the Workflows template first, then let the sync workflow replace consumer copies.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| This kit is managed from `Workflows/templates/consumer-repo/design-system/` and distributed by the Maint 68 Sync Consumer Repos GitHub Actions workflow through `.github/sync-manifest.yml`. Update it here first, then let the sync workflow replace consumer copies. | |
| This kit is managed from `stranske/Workflows/templates/consumer-repo/design-system/` and distributed by the Maint 68 Sync Consumer Repos GitHub Actions workflow through `.github/sync-manifest.yml`. Update the Workflows template first, then let the sync workflow replace consumer copies. |
🧰 Tools
🪛 LanguageTool
[uncategorized] ~50-~50: The official name of this software platform is spelled with a capital “H”.
Context: ...r Repos GitHub Actions workflow through .github/sync-manifest.yml. Update it here firs...
(GITHUB)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@design-system/README.md` at line 50, The README.md file at line 50 contains
ambiguous wording about where design system updates should be made. The phrase
"Update it here first" is unclear when read from a consumer repository and could
mislead users into editing the consumer copy instead of the source template.
Revise this sentence to explicitly and clearly state that updates must be made
to the source location at
stranske/Workflows/templates/consumer-repo/design-system/ first, before the sync
workflow propagates changes to consumer copies. This clarification will prevent
confusion about the source-of-truth and ownership of the design system files.
|
Closing as superseded by the newer sync workflow templates PR #1232 from wave sync/workflows-c45de68fdd89. |
Sync Summary
Files Updated
Files Skipped
Review Checklist
Source: stranske/Workflows
Source SHA:
de0849c19ac81e04dc4b1ce6f95c6ec53a4db945Template hash:
18397dc5e20fSync branch:
sync/workflows-18397dc5e20fConsumer repo:
stranske/Manager-DatabaseManifest:
.github/sync-manifest.ymlSummary by CodeRabbit
New Features
Bug Fixes
Documentation
Style