Docs/promote landing pages - #288
Open
Akshat0694 wants to merge 7 commits into
Open
Conversation
The pages built in tirith-internal as an isolated preview under documentation/new-landing-page/ become documentation/ itself, replacing the single-page landing site. Only documentation/ is built by deploy_docs.yml, so this is what makes them the published site rather than a preview nothing runs. The preview read the real site across a folder boundary. Those paths are now the site's own: staticDirectories drops to the default single root with the brand assets moved into documentation/static/img/, and the docs preset takes ./docs and ./sidebars.js directly rather than ../docs and ../sidebars.js. Five pages, replacing one: the landing page, Learn with the browser playground, Skills, At scale (the commercial page, previously Fleet), and the logo page reachable only from the landing footer. The Skills page instructs a reader to curl .claude/skills/tirith-policies/ and .cursor/rules/tirith-policies.mdc from this repository's main branch, and every file it lists links into that folder. Neither existed here, so the page shipped install instructions that 404. The skill pack is self-contained and meant to be copied into any project, so it moves here with the page that advertises it. docs/Tirith Logo.html comes across for the same reason: brand/README.md links to it as the source of truth for the mark's geometry, and three source files cite it. Its relative link is repointed for the shallower location. Also brings the public documentation the pages link to: editor-and-local.md, a link target the build would otherwise reject under onBrokenLinks: 'throw', plus the Bitbucket, Jenkins and pre-commit CI sections, the 1.2.0 install pins, and the issue-template links. deploy_docs.yml gains the PostHog and HubSpot environment. Every value is optional and unset means the analytics script never loads and the At scale form disables itself and says why -- which is the right behaviour on a fork. The documentation README was the stock Docusaurus scaffold telling readers to use yarn, which is wrong: package-lock.json is the committed lockfile and both docs workflows say so. It now describes the pages, the environment, the brand assets and the playground's documented limits. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The preview folder carried this rule in its own .gitignore; promoting it into documentation/ kept that folder's .gitignore, not the preview's, so the rule was lost. A `docusaurus start` then wrote a 352KB yarn.lock into documentation/, untracked and one `git add -A` away from being committed. That matters more than a stray file: package-lock.json is the committed lockfile, both docs workflows run `npm ci`, and a yarn.lock beside it invites exactly the resolve-fresh install the workflow comments warn against. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Introduced llms.txt for comprehensive documentation on Tirith, covering installation, usage, policy writing, and integration. - Added a robots.txt file to manage crawler access and document intended policies. - Updated TUI banner and subtitle to reflect "Open-source IaC governance" instead of "Policy as Code".
…md, validate.md, verdicts.md, and tirith-policies.mdc for clarity and accuracy
Codecov Report✅ All modified and coverable lines are covered by tests.
🚀 New features to boost your workflow:
|
…, validation methods, and pipeline integration
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request Template
Description
What changes are being made?
tirith-internalunderdocumentation/new-landing-page/becomedocumentation/itself. Only
documentation/is built bydeploy_docs.yml, so this is what makesthem the published site rather than a preview nothing runs. Five routes replace one:
/(landing),/learn/(six lessons and a browser playground),/at-scale/(commercial),
/origins/(the name and the mark),/roadmap/. The paths the previewused to reach across a folder boundary (
../docs,../sidebars.js,../static)become the site's own.
.claude/skills/tirith-policies/, 11 files) and.cursor/rules/tirith-policies.mdc. The Skills page instructs readers tocurlthesefrom this repository's
mainbranch and links every file it lists; neither existedhere, so those install commands returned 404.
llms.txt,llms-full.txt(all 26 doc pages inone file),
ai.txt,robots.txt, JSON-LD (SoftwareApplication+SoftwareSourceCode+Organizationsite-wide,FAQPageon/at-scale/), and 26per-page markdown endpoints at each route plus
.md.scripts/generate-llms-full.pygenerates the last three from the doc sources so theycannot drift, and fails if a doc is added without being placed in its order list.
HUMAN | AGENTtoggle that replaces thepage with its machine-readable form. It renders
llms.txtthrough a generated module,so the page and the crawler file are the same text.
editor-and-local.md(new, marked in development),Bitbucket/Jenkins/pre-commit sections in
ci-integration.md,1.2.0install pins, andissue-template links.
tirith lintis not inthe released CLI, and the pre-commit hook and VS Code task file are not in this
repository. Every affected snippet has the lint line commented (
# in dev, not in 1.2.0), the docs page carries a warning admonition and an(in dev)sidebar label,and the landing-page section that depended on them is switched off.
deploy_docs.ymlgains the optional PostHog and HubSpot environment. Unset, theanalytics script never loads.
documentation/.gitignorenow excludes the strayyarn.lockDocusaurus writes,and one TUI banner string changed in
src/tirith/tui/app.py.Why are these changes necessary?
pages were finished in
tirith-internalbut sat in a folder no workflow built, so theycould never ship from where they were.
that were not in this repository, and a
tirith lintsubcommand the released packagedoes not have. That is worse than a missing page, because it fails after the reader has
committed to trying.
wrong about Tirith are specific and costly:
pip install tirithfetches an unrelatedproject, and exit
1and exit3mean different things on purpose.Which issues or tickets does this PR close or relate to?
Type of Change
.claude/and.cursor/agent instruction files at the repository rootChecklist
npm run buildpasses withonBrokenLinks: 'throw', which is what proves everyinternal link resolves. No Python source changed except one TUI banner string.
documentation/README.mdrewritten (it was the stock Docusaurus scaffold tellingreaders to use yarn, which contradicts the committed
package-lock.jsonand bothworkflows).
DESIGN-NOTES.mdandbrand/README.mdadded.No test changes. Nothing here touches the engine;
src/tirith/tui/app.pychanges onebanner string. Site correctness is enforced by the build itself: broken links throw,
and the llms generator fails on an unlisted doc.
None to the CLI. Two things reviewers should know: the published site's URLs change
(the old single page becomes five routes), and
/logo/was renamed/origins/before ever being published, so no live link breaks.
Screenshots or Recordings (if applicable)
Additional Information
Known limitations, deliberate:
robots.txtandai.txtwill not be read as published. Crawlers fetch those only from ahost root, and this is a GitHub Pages project site, so they land at
/tirith/robots.txt. Both say so at the top. Thellms.txthalf is mitigated by a<link rel="alternate">in every page head. The real fix is a custom domain such astirith.stackguardian.io, which would make all of them root-relative at once.pages.excludeindocusaurus.config.js) and two landing-page sections ({false && …}guards). Each carries a comment saying exactly how to restore it. Skills is excluded
because it advertises
tirith lint.llms-full.txt, the 26.mdendpoints andsrc/data/agentBrief.jsare generated andcommitted. Re-run
python3 documentation/scripts/generate-llms-full.pyafter editing docs.Worth a reviewer's attention:
documentation/static/img/platform/holds three StackGuardian product screenshots takenfrom stackguardian.io. They are currently referenced only by a switched-off section.
If they are not wanted in an Apache-2.0 repository, deleting the three files and the
assetentries inVIEWSis the whole change.EVALUATORS_DICT, 5 providers againstsrc/tirith/providers/, exit codes againststatus.py, the version and Python floor againstsetup.py. There is no CloudFormationprovider, so the site does not claim one.