chore: sync workflow templates - #786
Conversation
Automated sync from stranske/Workflows Template hash: d0d4ad2bdd25 Changes synced from sync-manifest.yml
📝 WalkthroughWalkthroughAdds a new ChangesShared Design System
CI Workflow Pin Bump
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
Workflow state fingerprint for Keepalive Loop Reporter. Do not edit. |
|
Workflow state fingerprint for Agents Gate Followups. Do not edit. |
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
design-system/PRESENTATION_PATTERNS.md (1)
94-106: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueAdd blank line before heading for consistency.
Missing blank line before the "Rollout sequence" heading at Line 94.
📝 Proposed fix
Graduate this kit + the CSS into `Workflows/templates/consumer-repo/design-system/` so maint-68 syncs it fleet-wide. ## Rollout sequence🤖 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/PRESENTATION_PATTERNS.md` around lines 94 - 106, The "## Rollout sequence" heading is missing a blank line before it. Add a blank line immediately before the "## Rollout sequence" heading to maintain consistent markdown formatting throughout the document.
🤖 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/PRESENTATION_PATTERNS.md`:
- Around line 83-92: Add a blank line before the "## Streamlit design kit"
heading to ensure consistent formatting and spacing with other section headings
in the markdown file. Currently the heading appears immediately after the
previous section without any whitespace separator, which breaks the standard
markdown formatting pattern where headings should be preceded by blank lines for
readability.
---
Outside diff comments:
In `@design-system/PRESENTATION_PATTERNS.md`:
- Around line 94-106: The "## Rollout sequence" heading is missing a blank line
before it. Add a blank line immediately before the "## Rollout sequence" heading
to maintain consistent markdown formatting throughout the document.
🪄 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: c96123b1-bb58-46b1-bc8c-467d95db5668
📒 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)
📜 Review details
🧰 Additional context used
📓 Path-based instructions (3)
.github/workflows/**/*.yml
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
.github/workflows/**/*.yml: Do not add top-levelpermissions:block onworkflow_callreusable workflows - this conflicts with caller permissions
Avoid invalid YAML syntax, invalid permission scopes, and circular workflow references when creating GitHub Actions workflows
Files:
.github/workflows/agents-guard.yml
.github/workflows/agents-*.yml
📄 CodeRabbit inference engine (CLAUDE.md)
Agent workflow files (agents-*.yml) should be fixed in stranske/Workflows, not edited locally in the consumer repository
agents-*.yml workflow files should be fixed in stranske/Workflows, not edited locally in the consumer repo
Files:
.github/workflows/agents-guard.yml
**/*.py
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
In Manager-Database repository, import Prefect 2.x 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: ...m/and distributed by Maint 68 through.github/sync-manifest.yml`. Update it here firs...
(GITHUB)
🪛 markdownlint-cli2 (0.22.1)
design-system/PRESENTATION_PATTERNS.md
[warning] 83-83: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 94-94: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
🔀 Multi-repo context stranske/Workflows
Based on my thorough exploration of the stranske/Workflows source repository, I have gathered sufficient cross-repository context to inform the review. Here is my final summary:
Linked Repositories Findings
stranske/Workflows [::stranske/Workflows::]
Source of Truth for Synced Design System & Workflow Templates
The PR synchronizes from the canonical source repository stranske/Workflows (commit dfe0854) which implements a hardened design-system sync with the following key contracts:
1. Design System Files (Canonical, Non-Forkable)
tokens.css [::stranske/Workflows::] — Shared token definitions:
- Two themes:
.theme-air(default, Ink & Air) and.theme-paper(Warm Paper for friendlier apps) - Orthogonal
.density-compactaxis for data-dense screens - Contract: Apps may only override tokens via custom CSS loaded after tokens.css, never fork the file
components.css [::stranske/Workflows::] — Scoped component layer:
- All styles scoped under
.dsnamespace to prevent leakage into host apps - Token-driven and theme-agnostic — reads only CSS variables
- Includes presentation-state patterns:
.notice(variants:--info,--warn,--error,--ok),.empty-state,.badge,.skeleton - Contract: Never fork; only override tokens, not component rules
ds_streamlit.py [::stranske/Workflows::] — Streamlit adapter (186 lines):
- Hardened with HTML escaping on all user-provided strings (
html.escape()applied todesc,title,body,action,label,rawparameters) - Color palette hardcoded to match
.theme-airtokens:_INK = "#0a0a0a",_ACCENT = "#4f46e5",_NEG = "#dc2626",_WARN = "#b45309",_POS = "#047857"- Comment explicitly warns: "keep in sync with tokens.css .theme-air"
- Critical: Mismatch would cause Streamlit UIs to visually diverge from web UIs
- Functions exported:
inject_theme(),empty_state(),notice(),error(),translate_error()(maps known exceptions to human messages),dev_note(),diagnostics_expander(),availability_badge(),humanize_id() - Safety contract:
translate_error()logs raw exceptions but never displays them;error()must never receive raw exception text
PRESENTATION_PATTERNS.md [::stranske/Workflows::] — Fleet-wide UX standard:
- 6 reusable presentation patterns (P1–P6) derived from 2026-06-22 cross-fleet UX-Review baseline (8 apps)
- P1: Light theme default; P2: Empty states with CTA; P3: Translated errors; P4: Dev notices to logs; P5: Feature-availability badges; P6: Humanized IDs
- Maps specific findings (TMP
#5628, Inv-Man-Intake#630, etc.) to adoption of canonical patterns rather than bespoke fixes
README.md [::stranske/Workflows::] — Usage guidance:
- Emphasizes
.dsscope isolation and canonical non-forkable status ofcomponents.css - Per-app theme mapping:
theme-airfor work apps (Counter_Risk, Trend, Manager-Database, Inv-Man-Intake, Portable-Alpha, etc.);theme-paperfor Reader, LMS - Token customization via post-load CSS override, never component modification
2. Workflow & Action Updates
agents-guard.yml [::stranske/Workflows::] — Hardened workflow:
- Fallback
setup-api-clientaction pinned to44965d8d784573c119fb63828c05c89256c5f3e1(from commitdfe0854) - Action installs
@octokit/rest@20.0.2,@octokit/auth-app@6.0.3,lru-cache@10.4.3at pinned versions - Exports:
token_count,available_tokens,setup_contract(machine-readable JSON output perworkflows-api-client-setup/v1schema)
3. Sync Policy & Distribution
maint-68 Sync Workflow [::stranske/Workflows::]:
- Design system files synced via
create_onlymode (will NOT overwrite existing consumer copies except those inoverwrite_reposlist) - Only
stranske/Templateis in the canonical overwrite list for design system files - Distributed to all consumer repos at
design-system/directory path
4. Known Contracts & Constraints
- Color Palette Contract:
ds_streamlit.pyhardcoded Ink & Air palette must remain synchronized withtokens.css .theme-aircolor values - Theme Application: Apps must apply a theme class (
.theme-airor.theme-paper) to a root element for CSS scoping and token inheritance to function - No Component Forking:
components.cssis canonical and must not be customized per-app; only token overrides are permitted - Error Translation: Apps must call
translate_error(exc)before passing exception text toerror(message, remediation); never display raw exceptions, internal field names, or filenames - HTML Safety: All user-provided strings in Streamlit helpers are escaped; safe for
unsafe_allow_html=Truerendering - Diagnostic Leakage Prevention: Auth/trace/dev notices must go to logs via
dev_note()or behinddiagnostics_expander(), never to main UI
Key Risk for Counter_Risk Repository:
- If the Counter_Risk repo has customized
components.cssor hardcoded color palettes in any Streamlit app, syncing this canonical version will overwrite those customizations (though create_only mode should prevent this unless explicitly listed in overwrite_repos) - The hardening fixes may introduce stricter HTML escaping that could affect string rendering if the app was relying on unescaped HTML
🔇 Additional comments (20)
.github/workflows/agents-guard.yml (1)
114-114: 🎯 Functional CorrectnessSHA pinned correctly — action verified in source repository.
Both fallback paths reference a valid commit (
44965d8d784573c119fb63828c05c89256c5f3e1) in stranske/Workflows that contains the properly structured action. The sync from the canonical source repository follows the intended workflow and requires no action.design-system/tokens.css (3)
16-42: LGTM!
44-58: LGTM!
60-76: LGTM!design-system/README.md (2)
1-34: LGTM!
35-51: LGTM!design-system/components.css (4)
1-28: LGTM!
29-42: LGTM!
43-55: LGTM!
56-99: LGTM!design-system/ds_streamlit.py (9)
1-53: LGTM!
56-77: LGTM!
80-106: LGTM!
109-123: LGTM!
126-129: LGTM!
132-157: LGTM!
160-162: LGTM!
165-171: LGTM!
174-186: LGTM!design-system/PRESENTATION_PATTERNS.md (1)
1-65: LGTM!
| ## Streamlit design kit (most of the fleet is Streamlit) | ||
| The CSS components above cover the web apps (Pension-Data, trip-planner, LMS). The four Streamlit | ||
| Tier-A apps need a Streamlit-native equivalent — ship a shared `ds_streamlit.py` alongside the CSS: | ||
| - `inject_theme()` — applies the `theme-air` palette (P1); pairs with `.streamlit/config.toml`. | ||
| - `empty_state(title, desc, cta_label=None, on_click=None)` (P2) | ||
| - `notice(kind, title, body, action=None)` and `error(message, remediation=None)` + `translate_error(exc)` (P3) | ||
| - `dev_note(msg)` → logging; `diagnostics_expander()` (P4) | ||
| - `availability_badge(label)` (P5) | ||
| - `humanize_id(raw, mapping)` (P6) | ||
| Graduate this kit + the CSS into `Workflows/templates/consumer-repo/design-system/` so maint-68 syncs it fleet-wide. |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value
Add blank line before heading for consistency.
Missing blank line before the "Streamlit design kit" heading at Line 83.
📝 Proposed fix
| Default dark theme (TMP/PA/MD/IMI) | P1 |
## Streamlit design kit (most of the fleet is Streamlit)🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 83-83: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
🤖 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/PRESENTATION_PATTERNS.md` around lines 83 - 92, Add a blank
line before the "## Streamlit design kit" heading to ensure consistent
formatting and spacing with other section headings in the markdown file.
Currently the heading appears immediately after the previous section without any
whitespace separator, which breaks the standard markdown formatting pattern
where headings should be preceded by blank lines for readability.
|
Closing as superseded by newer sync PR #788 from the latest Workflows sync wave. |
Sync Summary
Files Updated
Files Skipped
Review Checklist
Source: stranske/Workflows
Source SHA:
dfe0854ae9b1ba1c616e4b57fb498f283ea3216fTemplate hash:
d0d4ad2bdd25Sync branch:
sync/workflows-d0d4ad2bdd25Consumer repo:
stranske/Counter_RiskManifest:
.github/sync-manifest.ymlSummary by CodeRabbit
Release Notes
New Features
Documentation
Chores