The organization's own repository: the profile on github.com/humanfia, and what every humanfia repository inherits rather than copies.
| Path | What it is |
|---|---|
CODE_OF_CONDUCT.md, CONTRIBUTING.md, SECURITY.md, SUPPORT.md, GOVERNANCE.md |
The default community health files. GitHub shows them for any repository of the organization that has no file of the same name. |
.github/ISSUE_TEMPLATE/, .github/PULL_REQUEST_TEMPLATE.md |
The default issue forms and pull request template, for any repository without an ISSUE_TEMPLATE folder or a template of its own. |
.github/workflows/uv-python-ci.yml |
A reusable workflow: the CI of a Python repository built with uv, as below. |
workflow-templates/ |
The starter workflow that calls it, offered under Actions → New workflow in every repository of the organization. |
profile/ |
The page GitHub shows on the organization's overview tab, with its banner. |
tools/gen_portfolio.py |
Generates the banner from humanfia.ai, as below. |
A repository keeps its own copy of a health file only when what it says is particular to that
repository, as humanize's are. A LICENSE, a README, a
CODEOWNERS, a dependabot.yml and a CITATION.cff are not inherited: each repository has its
own.
uv-python-ci.yml runs uv lock --check, ruff check and ruff format --check, then
pytest on Ubuntu and macOS, with every action pinned to a commit. A repository uses it from a
workflow of its own, which says when it runs:
name: CI
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
ci:
uses: humanfia/.github/.github/workflows/uv-python-ci.yml@d74f9b62af6827996c0d0ad59808bedbb902a945 # main, 2026-10-05The checks then show as ci / lint, ci / test (ubuntu-latest) and ci / test (macos-latest).
The organization requires every uses: to be pinned to a full commit SHA, a shared workflow
included: a tag or @main fails the run before any step. So a caller names a commit of this
repository's main, and a change here reaches a caller only when that caller moves its SHA to a
newer commit, in a pull request of its own.
-
profile/README.mdis the page GitHub shows on the org's overview tab. It holds only the banner, a<picture>that picks the light or dark SVG withprefers-color-scheme, linked to humanfia.ai. It is written by hand and does not change. -
profile/humanfia-portfolio-{light,dark}.svgis a 120-second explainer in constructivist style, one per colour scheme. It uses flat planes, bars, wedges and one red circle, a single 17° diagonal and heavy block type. The wordmark is built from geometry. It is pure SVG + SMIL on one clock, with no JavaScript, no web fonts and avatars inlined. Its chapters:- the H assembling and the dot hopping to the i
- the thesis
- the Humanize runtime
- a turn and the runtime's features
- the flows
- one maker-and-checker flow, running
- the projects with their headline numbers
- the latest news and blog posts
- the people
- the address
-
tools/gen_portfolio.pyreads the live sites and writes both SVGs:- from humanfia.ai: the logo, the home page's headline, manifesto, features and results, the Projects and Flows
menus and their pages,
/news/feed.rssand/blog/feed.rss, and About (and Team) for the people - from docs.humanfia.ai: the "how it fits together" bands
A chapter whose source is missing (a 404 or 410, or markup without the parts it needs) is dropped, and the others share its time. Any other failure exits non-zero and changes nothing.
- from humanfia.ai: the logo, the home page's headline, manifesto, features and results, the Projects and Flows
menus and their pages,
-
.github/workflows/profile.ymlchecks every half hour whether humanfia.ai has deployed a commit the profile was not built from (profile/.source-sha), reading the site's publicdeployruns with its own token, and runs the generator only if so. A run by hand checks the same way unlessforceis set. It runs the generator regardless daily and on ahumanfia-ai-deployedrepository_dispatch. It commits only when an SVG orprofile/.source-shachanged.
python3 tools/gen_portfolio.py # both banners
THEME=dark python3 tools/gen_portfolio.py # one banner (light|dark)
SITE=http://localhost:4173 DOCS=http://localhost:5173/humanize python3 tools/gen_portfolio.py # local previews
python3 -m unittest discover -s tools -p 'test_*.py'No secret is needed anywhere: the profile catches up with a deploy of humanfia.ai within about 40 minutes (the half-hourly check, after the ten minutes it gives GitHub Pages to serve the deploy).
The banner workflow runs the generator's tests on every change to it.