Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions .github/workflows/methodology-version-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Methodology version check

# The /methodology/ page serves the published specification address.
# It fetches the latest transitrix/methodology release at runtime via JavaScript.
# This check verifies that if the page is committed with a static version (for any reason),
# it matches the current latest stable release.

on:
push:
branches: [main]
paths: [methodology/index.html]
pull_request:
branches: [main]
paths: [methodology/index.html]

permissions:
contents: read

jobs:
check-methodology-version:
runs-on: ubuntu-latest
name: Methodology page version is current
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Fetch latest methodology release
id: methodology
run: |
RESPONSE=$(curl -s https://api.github.com/repos/transitrix/methodology/releases/latest)
TAG=$(echo "$RESPONSE" | jq -r '.tag_name')
VERSION="${TAG#v}"
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "tag=$TAG" >> $GITHUB_OUTPUT
echo "Latest methodology release: $TAG (v$VERSION)"

- name: Check page links to correct version
run: |
VERSION="${{ steps.methodology.outputs.version }}"
TAG="${{ steps.methodology.outputs.tag }}"
FILE="methodology/index.html"

if ! grep -q "$TAG" "$FILE"; then
echo "Error: methodology/index.html does not link to $TAG (latest release)"
echo "Page should link to: https://github.com/transitrix/methodology/releases/tag/$TAG"
exit 1
fi

echo "✓ Page correctly references $TAG"
115 changes: 115 additions & 0 deletions methodology/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Methodology — published specification | Transitrix</title>
<meta name="description" content="The Transitrix methodology: open, versioned specification for Architecture-as-Code. Notations, validation rules, and patterns for enterprise text-first modeling.">
<link rel="canonical" href="https://transitrix.com/methodology/">
<meta property="og:type" content="website">
<meta property="og:url" content="https://transitrix.com/methodology/">
<meta property="og:title" content="Methodology — published specification | Transitrix">
<meta property="og:description" content="The Transitrix methodology: open, versioned specification for Architecture-as-Code. Notations, validation rules, and patterns for enterprise text-first modeling.">
<meta property="og:image" content="https://transitrix.com/assets/og/transitrix-og.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:locale" content="en_US">
<meta property="og:locale:alternate" content="de_DE">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://transitrix.com/assets/og/transitrix-og.png">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,400;0,600;1,400&family=IBM+Plex+Mono:wght@400&display=swap" rel="stylesheet">
<link rel="stylesheet" href="../assets/css/style.css">
<link rel="icon" type="image/svg+xml" href="/assets/img/transitrix-icon.svg">
<link rel="icon" type="image/png" sizes="16x16" href="/assets/img/favicon-16.png">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/img/favicon-32.png">
<link rel="icon" type="image/png" sizes="128x128" href="/assets/img/favicon-128.png">
<link rel="apple-touch-icon" sizes="256x256" href="/assets/img/apple-touch-icon.png">
<meta name="theme-color" content="#004D67">
<script>if(localStorage.getItem('theme')==='light')document.documentElement.setAttribute('data-theme','light');</script>
<!-- Cloudflare Web Analytics -->
<script defer src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon='{"token": "1d2971bbe7964ede92ee02e5c78da48c"}'></script>
<!-- End Cloudflare Web Analytics -->
</head>
<body>
<a class="skip-link" href="#main">Skip to main content</a>
<header class="site-header">
<div class="wrap">
<a class="logo" href="../">Transitrix</a>
<div class="header-right">
<button class="theme-toggle" id="theme-toggle" aria-label="Toggle theme">
<svg class="icon-moon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>
<svg class="icon-sun" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>
</button>
</div>
</div>
</header>
<main id="main" class="wrap">
<div class="hero">
<h1>The published methodology</h1>
<p class="lede"><span id="version-placeholder">Loading version...</span></p>
</div>

<section>
<p>The Transitrix methodology is a published, open specification: Architecture-as-Code for the enterprise — the git-native, text-first discipline software already has, carried up to the strategy, business and architecture layers that code-scoped tools never reach.</p>

<h2>What the specification covers</h2>
<p>
The specification defines the notations, validation rules, and patterns for enterprise-layer text-first modeling:
purpose-built notations for processes, goals, capabilities, applications, strategy and behaviour;
a schema-validation framework to catch invalid models at author time;
patterns for common decision flows and architectural questions.
</p>

<h2>Versions and stability</h2>
<p>
The specification follows semantic versioning. Major releases ship a migration recipe for existing models, not a release note.
A major release is the right time to adopt breaking changes that improve the language; the recipe walks you from any prior major to the current one.
</p>

<h2>Read the full specification</h2>
<p>
<a id="spec-link" href="https://github.com/transitrix/methodology/releases/tag/v5.0.0">Read the full methodology specification on GitHub</a> — the specification is maintained as a published release alongside the toolkit source code.
</p>
</section>
</main>
<footer class="site-footer">
<div class="wrap">
<div class="footer-inner">
<p>
<a href="https://github.com/transitrix">github.com/transitrix</a> ·
<a href="https://x.com/transitrix">@transitrix</a>
</p>
</div>
<p class="footer-attribution">Created and maintained by Valerii Korobeinikov — enterprise-architecture advisory at <a href="https://korobeinikov.consulting">korobeinikov.consulting</a></p>
</div>
</footer>
<script src="../assets/js/theme.js"></script>
<script>
// Fetch the latest methodology release version
async function updateVersion() {
try {
const response = await fetch('https://api.github.com/repos/transitrix/methodology/releases/latest');
if (!response.ok) throw new Error('Failed to fetch release');
const release = await response.json();
const tag = release.tag_name; // e.g., "v5.0.0"
const version = tag.replace(/^v/, ''); // remove 'v' prefix
const releaseName = release.name || `Version ${version}`;

// Update version placeholder
const placeholder = document.getElementById('version-placeholder');
placeholder.textContent = `Version ${version}. ${releaseName.includes('(breaking)') ? 'Breaking changes: see the migration recipe.' : 'Stable release.'}`;

// Update spec link
const specLink = document.getElementById('spec-link');
specLink.href = `https://github.com/transitrix/methodology/releases/tag/${tag}`;
specLink.textContent = `Read the v${version} methodology specification on GitHub`;
} catch (error) {
console.error('Could not fetch methodology version:', error);
document.getElementById('version-placeholder').textContent = 'View the latest methodology specification on GitHub.';
}
}
updateVersion();
</script>
</body>
</html>
4 changes: 4 additions & 0 deletions sitemap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@
<loc>https://transitrix.com/library/archimate-cheat-sheet/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://transitrix.com/library/archimate-cheat-sheet/"/>
</url>
<url>
<loc>https://transitrix.com/methodology/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://transitrix.com/methodology/"/>
</url>
<url>
<loc>https://transitrix.com/recipes/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://transitrix.com/recipes/"/>
Expand Down
2 changes: 1 addition & 1 deletion what-can-i-model/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ <h1>What can I model?</h1>
<section>
<p>Transitrix ships a set of purpose-built notations rather than one generic shape you bend to fit everything: BPMN and process blueprints for how work happens; goal trees, capability maps and FGCA for what the organisation is trying to do and what it can do; application and product notations for the systems landscape; activity networks and scenarios for behaviour over time.</p>
<p>Each notation is built for its own layer, business or technical, instead of being a stripped-down copy of a general-purpose diagram.</p>
<p>See one minimal, schema-valid example of every notation on the <a href="../dsl-examples/">DSL examples page</a>, or the full specification for each in the <a href="https://github.com/transitrix/methodology/tree/main/notations">methodology repository</a>.</p>
<p>See one minimal, schema-valid example of every notation on the <a href="../dsl-examples/">DSL examples page</a>, or the full <a href="../methodology/">published methodology specification</a>.</p>
</section>
</main>
<footer class="site-footer">
Expand Down
Loading