head
Categories:
-
Center the project index on the documentation axis
The section index resolved layouts/projects/list.html inside the default baseof, whose bare
gave it no grid column and no padding offset from the .td-main main rule, so it rendered full width at 48px with a 128px heading. Give the section its own projects_index type with a baseof that keeps the documentation row and column but omits both asides. The index now starts at 88px and centers at 259px with a 771px column, matching /docs/ and /blog/ exactly.
-
Render the project index in the documentation column
The index rendered in the layout’s root wrapper, so its text spanned the full page width instead of the column the documentation and blog pages use. That made it read as a stray full-width list rather than a page of the site.
Lay the index out like a documentation list page: the documentation column (
col-12 col-md-9 col-xl-8 ps-md-5) inside a row, the section description as a lead, and the theme’ssection-indexentries separated by a panel line. The documentation sidebars are deliberately absent, so the list stays a plain single-column page.LLM-disclaimer: This commit was generated by an LLM.
-
Lay the project index out as a single-column section list
The card grid read as a separate component next to the rest of the site. The
/projects/index now uses the same section list as the documentation index: one entry per project under theProjectsheading, separated by panel lines, each entry carrying its description, status, and tags. The entries stay in alphabetical order.Wrap the list in a section so the theme’s first-section offset applies; without it the
Projectsheading rendered underneath the fixed navbar.LLM-disclaimer: This commit was generated by an LLM.
-
Add a staging publication and refine the project index
Verify the project landing replacement on its own hostname before the apex changes and before any per-project resource is retired, and make the landing index useful to a visitor.
www-staging.alwaldend.comgets a checked-in DNS declaration and a catalog repository, and the apex site gains a staging build that renders the same packaged source with the staging base URL plus a deployment command that publishes it. The publication command now takes its repository and branch as arguments, so staging and production share one publisher, and a repository whose publication branch does not exist yet is created as an orphan instead of failing on clone. A new repository receives a default branch at creation so the managed ruleset can protect it while site content publishes to a separate branch, and GitHub Pages configuration is deferred for a repository until its publication branch exists.The
/projects/index no longer opens with explanatory prose, lists landings alphabetically, and shows each project’s status and tags as links to their taxonomy term pages.Deploy the staging site, verify the landing, documentation, and taxonomy routes there, then deploy the accepted output to the apex and verify the same routes. The per-project hostnames, DNS records, and landing repositories remain in place until their retirement is requested.
OpenSpec-Change: projects/alwaldend.com/openspec/changes/site-staging-environment
LLM-disclaimer: This commit was generated by an LLM.
-
Move project landings into the main site
Publish every registered project’s visitor-facing landing page at /projects/
/ from the main site instead of a dedicated subdomain, and retire the per-project Pages repository, CNAME, and Terraform DNS stage that existed only to serve one page derived from the project README. Each project owns its landing content in projects/
/site/content/ as pure content: no layouts, styles, or build rules. The main site packages those directories into content/projects/ / from the registry in projects/projects.bzl, so membership is declared once. The landing is a short hand-written page for visitors while the README keeps its /docs/projects/ / URL for repository reference documentation, and landing front matter now feeds the statuses, languages, and tags taxonomies. Merge the reusable hugo_landing project into the main site: its shared canvas and accent styles and its landing page rules move into the apex tree, and its landing macro, generated configuration, standalone publisher, and repository-relative rewrite layouts are removed. The theme keeps owning the taxonomy and term layouts, which are richer than the heading-only versions the reusable project carried. Remove the now-unused apex deploy_project.sh and deploy_all.sh landing publishers with it.
Retire the per-project publication and DNS ownership: the project landing targets and the landing deployment command, each landing project’s dnsconfig.json and Terraform root, the build plumbing that served only those stages, and the landing repository and Pages membership in the repository catalog. The apex Terraform root is retained because it also declares VM resources, and no Vault configuration is changed.
Replace the provider-snapshot zone files with generated declaration pages, one per destination view, that project the checked-in declarations and are verified for freshness by the DNS offline check. The DNS linter, both destination pages, the apex site, the skills projection, and the repository quality suite pass, and the whole repository builds.
OpenSpec-Change: projects/alwaldend.com/openspec/changes/consolidate-project-landings-into-apex
LLM-disclaimer: This commit was generated by an LLM.
-
Merge pull request #94 from alwaldend/t3code/fix-hugo-theme-light-dark-accent
Restore light and dark site canvases and set the shared accent
-
Manage forge resources with hermetic Terraform rules
Centralize organization, repository, and named access configuration in infra/repos. Adopt existing GitHub resources, protect master defaults while retaining Pages publication on pages, and preserve existing repository identities. Manage GitLab one-time imports, the F-Droid metadata fork, and default-branch protections through Vault-backed authentication. Forgejo consumes the same catalog. Ongoing repository synchronization is deferred.
Retire the eleven Bazel rule landing sites through their owning Terraform workflows, removing their DNS records, Pages repositories, and landing configuration. Move all twelve existing standalone rule modules into tools/ and retain their public interfaces and documentation on the main site.
Add tools/rules_terraform with verified provider downloads, packed mirrors in runfiles, and reusable Terraform execution rules. Enforce one version per provider source at an extensible resolution boundary. Migrate every Terraform consumer to thirteen shared provider pins in third_party/terraform. Execution and command maps belong to rules_terraform; consumers explicitly select generic AL wrappers for authentication and Vault injection. Remove tools/terraform and all 43 checked-in Terraform provider locks. Validate installed providers against the declared archives before execution.
Validation covers all fourteen workspace builds, all thirteen standalone test suites, Terraform consumers, offline real-provider regressions, rendered documentation, formatting, and semantic lint. The full root test run has 295 passing tests and one skip; its only failure is the historical secret scan, reduced to four pre-existing synthetic fixture matches. Earlier live imports and the exact landing retirement scope have verified postconditions; the Terraform rules migration uses only offline implementation checks.
OpenSpec-Change: infra/repos/openspec/changes/archive/2026-09-13-adopt-shared-repository-catalog OpenSpec-Change: infra/src/openspec/changes/archive/2026-09-13-retire-bazel-rule-landings OpenSpec-Change: tools/rules_terraform/openspec/changes/archive/2026-09-14-add-hermetic-terraform-rules OpenSpec-Change: tools/rules_terraform/openspec/changes/archive/2026-09-14-correct-terraform-ownership
LLM-disclaimer: This commit was generated by an LLM.
-
Publish the DNS evolution article and update blog workflow
Publish the author’s account of moving DNS management from a central DNSControl configuration to project-owned Terraform records, with examples and directory layouts. Include the author’s clarifications and approved wording corrections, and remove the draft flag for publication.
Tag both blog posts using existing site topics. Require relevant tags and iterative reviews in the blog skill: report findings before validation and delivery, repeat after changes, and finish delivery when the review is clear or the author ends it. Cover both behaviors in the existing evaluation cases.
Validation: local and release Hugo builds, site_test, skill validation and offline Promptfoo configuration test, skill discovery, Buildifier, repository quality, and semantic lint for the affected blog and skill packages.
LLM-disclaimer: This commit was generated by an LLM.
-
Deploy project DNS through Terraform modules
Move DNS ownership into each project’s Terraform state using shared modules. Load dnsconfig.json files at runtime, reject conflicting domain ownership, and render their records as a table. Add missing project AppRoles and scoped DNS policies, and document grouping related Terraform resources in modules.
Deploy all 45 owners sequentially: adopt 155 existing records and create 13 missing OpenHands records. Preserve every pre-existing provider record and verify no-op follow-up plans and DNS answers. Add DNS-scoped plan/show/apply wrappers with a saved-plan guard for roots that also manage services. Allow bounded aggregate path inventories large enough to deliver this migration while retaining truncation refusal in the delivery tool.
Validate runtime ownership, provider imports and preservation with isolated fixtures, Terraform formatting, wrapper builds, repository quality checks, semantic lint, and project documentation/specification builds.
OpenSpec-Change: infra/dns/openspec/changes/archive/2026-09-13-migrate-project-dns-to-terraform
LLM-disclaimer: This commit was generated by an LLM.
-
Record the site hostname decision for alwaldend.com
Record the evaluated options for the apex site’s landing, documentation, and blog sections: one hostname with one build (retained), separate hostnames served from separate GitHub Pages repositories, and one hostname with independently built and merged section outputs. The generated documentation tree is a projection of the repository’s own directory structure across 471 packaged README files, and an earlier commit already combined the misc, docs, and projects sites, so splitting the hostnames would move where the projection is served without decoupling it from its source.
Separate the shared-build failure coupling from the hostname question: the recorded fallback keeps one published tree while splitting the build graph, if panicking on any packaged README warning starts blocking delivery.
Record the search-engine evidence from primary sources. Google’s crawling-and-indexing FAQ states that from an indexing and ranking perspective Google has no preference, and the office-hours answer recorded here addresses the same question. The record explicitly does not claim that subdirectories preserve link equity that a subdomain would forfeit, and it cites a third vendor video by title only because its spoken content could not be retrieved.
This change adds no site behavior, build target, configuration, DNS record, or Terraform resource.
OpenSpec-Change: projects/alwaldend.com/openspec/changes/archive/2026-09-12-record-site-hostname-decision
LLM-disclaimer: This commit was generated by an LLM.
-
Fix Android review feedback
Add a shared
androidPluginsversion catalog so both Android apps declare the AGP, Kotlin, Compose, and protobuf plugin versions once, and derive their versions from it instead of duplicating literals per root Gradle file.Align the launcher and ingester app versions with the repository versioning contract: development builds use
0.0.0-devwithversionCode1 in both the Gradle default config and the Bazelmanifest_values.Ignore the whole materialized
.agents/skillsdirectory in Prettier because every entry is either a source-tree symlink or a byte-pinned external archive copy.Apply the ingester’s themed surface background to the main content surface so the status bar area follows the system theme, not a default white surface.
Token: z-ai-glm-flash-latest
LLM-disclaimer: This commit was generated by an LLM.
-
Add a blog section, a shared site canvas, and standalone nested modules
Publish the Docsy blog section on the apex site with its content package, navigation entry, RSS feed, and draft-safe release flags. The release build excludes drafts so a post stays unpublished from its front matter alone.
Move the reusable project-site procedure to a generic repo-hugo skill that also documents the Hugo theme layout, and add an alwaldend-blog skill that publishes supplied content verbatim and reviews it afterward. Enforce one implementation and one copy of each fact in the root policy, and refine the skill locality rule to prefer local ownership only when it genuinely fits.
Share one black theme between the landing shell and the apex site from a single SCSS source, and let docs_filegroup preserve source paths so packages holding identically named files stop colliding.
Repair every nested Bazel workspace: rules_openspec declared six unused, versionless sibling dependencies whose local_path_override entries never applied outside the root module, which broke standalone resolution for all nested modules. Drop those dependencies, ignore the two nested module directories that lacked an ignore entry, add the missing build_test coverage, and extend the full-repository check to all twelve nested workspaces.
OpenSpec-Change: projects/alwaldend.com/openspec/changes/archive/2026-09-12-add-docsy-blog-section OpenSpec-Change: projects/hugo_landing/openspec/changes/archive/2026-09-12-shared-site-canvas OpenSpec-Change: projects/rules_docs/openspec/changes/archive/2026-09-12-nested-spec-path-collision OpenSpec-Change: infra/src/openspec/changes/archive/2026-09-12-fix-nested-workspace-module-resolution
LLM-disclaimer: This commit was generated by an LLM.
-
Remove the goal component, the agent control tower, and the site link test
Delete projects/goal entirely: its CLI, API package, filesystem store, landing site, disabled skill sources, documentation pages, diagrams, Bazel targets, project-registry entry, and committed DNS record. The goal tool was deprecated by the 2026-09-08 migration to the pinned OpenSpec CLI, which is in active use, and the repository policy already told agents not to create goal records.
Delete tools/agents entirely. It carried repository-internal control contracts, seven catalog compilers, an offline context capsule, and typed admission/control/plan/evidence libraries. The goal tool was their only consumer; no CI or AGENTS.md invocation read the catalogs. Relocate the generic skill-discovery declaration to .agents/BUILD.bazel beside the directory it generates, and repoint the 29 skill visibility labels from //tools/agents:skill_discovery to //.agents:skill_discovery. Skill content, link targets, and the 27 existing symlinks are unchanged. A BUILD.bazel inside .agents/skills/ was rejected because the generated updater rejects a non-symlink there.
Reduce projects/agents to its skills: delete the architecture, current-state, and roadmap documents and the docs package they fed. Documentation describing agent-system composition now belongs with the component that owns the behavior.
Remove //projects/alwaldend.com/test/site:site_test. It has never passed since 894494f4: it fails on unmodified HEAD with 330 missing-file findings because it treats repository source paths and the published URL space as one namespace. Repository-only targets such as BUILD.bazel and playbook YAML are deliberately not packaged, so those links can never resolve in generated output.
Record the removals as three OpenSpec changes: remove-deprecated-goal-component and remove-generated-site-link-test under infra/src and projects/alwaldend.com, and remove-goal-tool-and-contract-tower under projects/agents.
The removed bytes remain retrievable from git history at the parent of this commit; the changes neither copy nor restate them.
Address review feedback before publication:
Point the hugo_landing site example at the surviving //projects/agents:docs target. The copied example referenced //projects/agents/docs:docs, which this change deletes, so the snippet failed label resolution.
Point the new specification links at their real paths. The repository change referenced migration.md one directory too shallow, and the Reimu continuation requirement referenced the process contract from beneath the change directory instead of the project root; neither path existed.
Rewrite projects/renders/assets/reimu_fumo/PROCESS.md so its required stage gates no longer depend on the removed goal tool. That contract was the authoritative process for the still-open Reimu work, and it required goal-tool checkpoints, portable goal plans, and goal state to start, repair, reset, and close attempts. Those mechanics now record into the project’s OpenSpec change and its durable evidence, so every gate stays executable. Acceptance criteria and the blocked continuation state are unchanged. The continuation requirement is recorded in the change spec and its rationale in the change design.
OpenSpec-Change: infra/src/openspec/changes/remove-deprecated-goal-component OpenSpec-Change: projects/agents/openspec/changes/remove-goal-tool-and-contract-tower OpenSpec-Change: projects/alwaldend.com/openspec/changes/remove-generated-site-link-test OpenSpec-Change: projects/renders/openspec/changes/reimu-fumo-finish
LLM-disclaimer: This commit was generated by an LLM.
-
Simplify OpenSpec workspace globs
Collapse OpenSpec source globs to specs and changes, drop redundant package visibility blocks already covered by REPO.bazel, and regenerate the affected catalogs.
LLM-disclaimer: This commit was generated by an LLM.
-
Publish project sites and reproducible infrastructure diagrams
Build and deploy all 30 remaining project sites with the standard Docsy header, project descriptions and a linked documentation directory. Omit the repeated page title and generated language heading. Remove the unused cgit and xray_manager projects and retire their site resources.
Add a repeatable GitHub Pages publisher, staged Terraform bootstrap and direct GitHub Pages DNS records. Preserve repeated publication when pages is the remote default branch, and include Rules ISO in the main documentation. Document site onboarding in a registered, validated skill. Keep AL introduction short with useful links and preserve its lifecycle details in a dedicated documentation page.
Render all 15 existing infrastructure Drawio pages with pinned Drawio and Chrome inputs, sandboxed export actions, an update target and freshness checks, and include the maintained diagrams in infra/arch documentation. Paint an opaque white canvas to preserve readability in dark themes.
Validation covers project and apex builds, rendered pages, publisher tests, diagram repeatability and freshness, DNS configuration, Terraform formatting, semantic lint and repository quality.
Goal-Ref: build-and-deploy-every-project-landing-page-a782b800 Attempt-ID: attempt-00941092c164
LLM-disclaimer: This commit was generated by an LLM.
-
Wait for AL secret cleanup and plugin shutdown
Roll back partial plugin startup, drain requests before releasing resources, and wait for plugin and command processes to exit. Stop independent plugins concurrently while preserving dependency order inside each plugin.
Revoke invocation-owned credentials, remove temporary secret files, and verify Forgejo and Harbor session cleanup. Preserve the user’s existing Vault login. Enforce Vault OIDC origins and no_auth, redact sensitive errors, and restrict config dumps to owner-only files. Add the AppRole SecretID cleanup permission.
Cover normal exit, cancellation, failed startup, credential revocation, and transport cleanup with synthetic unit and real command/plugin regression tests.
Clarify that required formatting-only repairs need no separate approval, and fix the existing blank-line formatting failure in the GitHub AL wrapper.
Goal-Ref: fix-al-secret-lifecycle-and-plugin-shutdown-3137c0b0 Attempt-ID: attempt-0c1353676e2f
LLM-disclaimer: This commit was generated by an LLM.
-
Keep Bazel dependencies lazy and generate the root module
Declare pinned InfiniTime sources and the Hedron extractor through use_repo_rule, retain recursive firmware submodules, and use the official contrib_rules_jvm 0.32.0 release. Keep default toolchain registration convenient for consumers.
Move root tool implementations into owning packages while preserving compatibility labels, visibility, manual tags, Python paths, Terraform working directories, pnpm dependency pins, and documentation archive layout. Guard the load-free root BUILD with a parser-based quality test. Generate root MODULE.bazel directly from owning include files, with an update command and freshness/integration tests.
Cache hermetic agent tests, preserve lint analysis across modes, and build only lint outputs in lint mode. Allow normal agent lockfile updates while retaining strict CI checks. Limit host Bazel scheduling to eight jobs and half its CPUs, with matching checked-in host configuration.
Fix DNSControl command ordering, JSON manifest loading, record filename suffixes, and credential-file wiring through existing Vault environment injection. Add an offline config test. Correct the Git wrapper shebang for direct execution and refresh derived catalogs affected by the Bazel changes.
Validation covers compatibility builds, firmware, documentation outputs, generator freshness, DNS configuration, and a live DNS preview without applying changes. The repository-wide audit also identifies pre-existing test and coverage gaps.
Goal-Ref: avoid-unrelated-bazel-dependency-downloads-638e8329 Attempt-ID: attempt-106ffd5ccaeb
LLM-disclaimer: This commit was generated by an LLM.
-
Repair site navigation and simplify page layout
Show one homepage panel with vertically stacked GitHub and Docs rows using the name: URL format, hiding the protocol and trailing slash in the link text. Center the panel and cap its width at 40rem while allowing it to shrink on mobile. Move it slightly lower on desktop and brighten the footer link. Restore the project assets mount so custom styles load. Reduce the footer to its content height with compact padding. Size the homepage against the visible viewport so mobile browser controls do not hide its footer. Remove the separate Projects page and its header link, while keeping project documentation under Docs. Remove the introductory homepage copy and visible title.
Resolve Markdown links and images from their source locations, package missing documentation and book covers, correct source links, and scope anchors and release controls in combined print pages. Restore the archive-root CNAME explicitly during deployment so replacing the site preserves the custom domain.
Validate generated HTML for missing internal files and fragments, duplicate IDs, image alternatives, and the homepage, Misc source-link, and Goal diagram regressions. Check the production build, repository quality, affected-target semantic lint, desktop and mobile homepage rendering, and deployment output.
Goal-Ref: out/site-fix/goals/fix-local-alwaldend-com-layout-and-links-a2e69a4e Attempt-ID: attempt-165dd5be7d71
LLM-disclaimer: This commit was generated by an LLM.
-
Extract DNSControl setup into rules_dnscontrol
Extract the DNSControl setup into
rules_dnscontrol, generate its Bazel dependency bundle from project-owned record files, and update the DNS guidance. Move Hugo rules and the worker to role-based package paths, and give each non-nested project a locally owned Hugo landing target that reuses the shared README-to-landing macro.Clean all landing and Pages DNS records so GitHub Pages serves each project subdomain directly without Cloudflare proxying. Improve the main site with a three-panel home layout, complete project links, documentation explore links, and current deployment guidance.
All affected root-workspace landing, DNS, and site targets pass, along with the nested
rules_hugotests, Buildifier, and repository quality checks.LLM-disclaimer: This commit was generated by an LLM.
-
Improve the Hugo site and fix the persistent worker
Extract the Hugo build rules into a standalone nested module projects/rules_hugo and add a Go-based persistent Hugo worker with a Dart Sass toolchain, then fix the worker’s empty-destination defect, polish the rules, add per-project landing pages and DNS declarations, and improve the site deploy.
- rules_hugo: standalone nested module with MODULE.bazel, main/bzl rules, tests, and README; no root-workspace labels.
- hugo_worker: persistent worker that resolves execroot-relative paths through the work directory and probes DART_SASS_BINARY, so the site destination is populated with HTML and Sass-compiled CSS.
- sass: Dart Sass 1.103.1 toolchain wired into the site build.
- alwaldend.com: Hugo 0.165.0, Docsy 0.17.0, Bootstrap 5.3.8, Font Awesome 7.3.1, module mounts, and the site build switched to the worker.
- Landing pages: content/projects/_index.md links every project to its docs page; a Projects menu entry is added and the content filegroup is wired.
- DNS: projects/alwaldend.com/dnsconfig.json declares no records (no new subdomains) and is wired into infra/dns/dnsconfig.js.
- Deploy: the genrule clones the pages branch that GitHub Pages serves, clears the previous checkout, writes .nojekyll, stages deletions, skips no-op deploys, and pushes HEAD:pages without a force push; the README deploy section is updated.
- Content: rename the reserved sites taxonomy to websites so the alwaldend.com term renders, and fix main/bzl docs prefix collisions across nested modules.
- Review fixes: document the extension-based toolchain registration in the rules_hugo README, sync the full-repo-check eval rubric to nine nested workspaces and twenty commands, and drop the worker’s unsupported outs attribute.
- Validation: site build produces 3051 HTML pages and Sass CSS; worker, terraform, buildifier, and nested rules_hugo tests pass; git diff –check is clean.
LLM-disclaimer: This commit was generated by an LLM.
-
Complete Phase 1 agent system controls
Close the registered agent-reachable universe with owner-local operation declarations, a report-only completeness checker, shared task-run contracts, task/run-isolated Cordis scratch, explicit Terraform mutations, and bounded Bazel diagnostics. Record numeric resource ceilings and accepted durable-goal evidence for the exact candidate.
Integrate the non-render agent tooling and Blender toolchain changes from PR 24 while retaining the old Blender data package whose move destination is excluded. Direct repository agents to prefer Cordis over shell for supported inspection and to consider bounded Cordis handlers for recurring gaps.
Verification:
- affected Bazel build: 74 targets passed
- affected Bazel tests: 23 of 23 passed
- Phase 1 registered-universe report: valid
- goal validation: valid
- git diff –check HEAD: passed
LLM-disclaimer: This commit was generated by an LLM.
-
docs: define the repository agent system
Make the repository legible as one coherent agent-operated system while preserving one mutation authority per fact.
- add revision-bound current state, target architecture, and phased roadmap
- route root and agent entry points to the canonical model and durable goal
- normalize repository-tree policy and the public-information boundary
- clarify task-private secret scratch and non-obvious tool narration
- correct question and secret skill contracts and stale operator examples
- render source-compatible Markdown links correctly in the documentation site
- retain the complete audit, decision, validation, and acceptance record
Validated with focused skill and Buildifier tests, affected Bazel builds, the full Hugo site, source and rendered link checks, exact label queries, repository-pinned formatting, and goal-record validation.
LLM-disclaimer: This commit was generated by an LLM.
- Complete repository quality coverage
-
Add hermetic repository-wide formatting and linting
Integrate upstream formatters for the repository’s meaningful tracked source and configuration file types through Bazel, and add Buildifier, Ruff, and ShellCheck lint aspects for correctness-oriented repository-wide checks.
Pin all new external tools through Bzlmod or the existing pnpm lock, add thin cache/runfiles adapters where required, expose format and check targets, and wire the checks into the pre-commit workflow. Format the existing tree and fix the correctness defects uncovered by the new checks. Preserve generated sources and exact-content fixtures that are not safely rewritable, and clarify that ordinary infrastructure build output is safe to display.
Validation:
- all 21 repository quality and compatibility formatter tests pass
- Buildifier test passes
- lint aspects analyze all 4,629 ordinary root targets without findings
- the complete 18-command root and nested full-repository audit was exercised; remaining failures are documented environment or pre-existing test limits
LLM-disclaimer: This commit was generated by an LLM.
-
Add global repository versioning
Introduce a Bazel-built Go tool that calculates the repository’s global SemVer-compatible ISO-week calendar versions, creates guarded nightly tags and weekly release branches atomically, advances release patches by first-parent commit, and emits deterministic Bazel workspace-status keys.
Route release stamping through the tool and add a packaged, discoverable versioning skill with offline Promptfoo validation. Cover ISO week boundaries, SemVer formatting, branch and dirty-tree guards, release patch calculation, tag integrity, and stamping output with focused tests.
Provide a clean-checkout bootstrap that builds the Go tool before it launches the stamped Bazel command. Bind ref transactions to the inspected commit, neutralize Git replace/graft/routing inputs, make dry runs validate namespace collisions, validate every published patch tag against its exact first-parent position, reject ambiguous or inconsistent tag states, and require explicit context for detached release calculations. Route detached release-tag selection through those same history-integrity checks. Keep development status cache-safe by emitting Git identity as volatile data while making immutable nightly and release identities stable.
Add a repository-delivery integration regression proving that a failed aggregate whitespace check identifies the offending path exactly once.
Verified with:
- bazel_agent test //tools/versioning/… //tools/repo_delivery/main/go:go_test //:write_skill_links_test //:buildifier_test
- bazel_agent build //tools/versioning/… //tools/repo_delivery/…
- tools/versioning/cmd/versioning/versioning.sh bazel – build –config=release //tools/versioning/cmd/versioning
- real Git integration tests covering ref transactions, SHA-256 repositories, environment isolation, detached contexts, tag ordering, and namespace collisions
LLM-disclaimer: This commit was generated by an LLM.
-
Add standalone documentation rules
Move docs_filegroup into a reusable rules_docs nested Bzlmod workspace and migrate every root and nested consumer to it. Add a module-aware Gazelle language that creates docs targets only for existing README packages while preserving manual mappings.
Wire the workspace into module resolution, documentation aggregation, and the ten-command full-repo-check. Add the bazel-nested-module skill so future nested workspaces follow the repository’s rc, lockfile, docs, toolchain, Gazelle, and validation conventions.
Keep reviewed Gazelle dependency canonicalization, while protecting the hand-maintained Go proto, Python resource, Android, embedded-site, and skill runner definitions that generic language plugins would otherwise break.
This commit was generated by an LLM.
-
Keep embedded site server in target configuration
This commit was generated by an LLM.
-
Fix Bazel build caching and tool configuration
This commit was generated by an LLM.
-
Remove redundant documentation mappings
Inline sources from eight layout-neutral pkg_files wrappers and migrate the remaining legacy Vial docs producer to docs_filegroup. Keep only mappings that perform required renames.\n\nThis commit was generated by an LLM.
-
Complete docs filegroup migration
Pass ordinary documentation sources directly and isolate generated or renamed outputs in semantic pkg_files dependencies. Remove the obsolete renames and strip_prefix surface from docs_filegroup.\n\nThis commit was generated by an LLM.
-
Make release generation hermetic
Add the missing AL and Kustomization release targets and give release actions a declared bare Git snapshot instead of access to the workspace repository.\n\nThis commit was generated by an LLM.
-
Migrate documentation packaging to docs_filegroup
Preserve custom prefixes, renames, strip prefixes, and standalone workspace behavior.\n\nThis commit was generated by an LLM.
-
Make Qt and Maven dependencies hermetic
Align protobuf with the Android build tools and refresh generated locks.\n\nThis commit was generated by an LLM.
-
Make Android SDK setup reproducible
This commit was generated by an LLM.
-
Add agent-friendly Bazel config
This commit was generated by an LLM.
- Use an image from the marketplace, update some locks, add CODEOWNERS
- Finish opencode deploy
- Add //third_party/org_fedora_cloud, fix alwaldend.com roles
- Set up unikernel deploy
- Refactor flux manifests a bit, add //tools/ops
- Add a server to //projects/alwaldend.com
- Add OIDC for k3s, add OIDC fetcher to injector
- Add drawio-desktop, add //infra/arch, update opencode restrictions
- Finish forgejo_login, add org to forgejo tf, remove cl1
- Add //third_party/org_kernel_headers, rename all deps files to include
- Add //third_party/org_nmap_nmap
- Fix ssh key signing
- Add ssh key signing to injector, remove more FP from injector
- Finish the lifecycle manager, intergrate it
- Continue working on the lifecycle manager
- Add a lifecycle manager
- Add WaitCtx to fp.WaitGroupE
- Split startups and shutdowns, add timeouts to shutdowns
- Improve plugin clients and servers
- Improve plugin concurrency, remove FP from tf_backend
- Migrate all state to Vault
- Finish rewriting the injector into a gRPC plugin
- Set up convertation between protobuf json and regular json
- Continue rewriting the secret injector to a plugin
- Continue rewriting the injector to a plugin
- Continue rewriting the vault injector to a plugin
- Add //tools/vault/injector, start migrating resource_handler to it
- Add pipes with error and panic handling, add some more FP stuff
- Fix plugins broken after the refactor, remove main from bazelrc, move FP updates
- Refactor FP to use recursive generics, add some iterator handling
- Add more FP stuff, add plugin configs to al.lua, migrate pve_login and tf_backend to new configs
- Move //tools/al to //projects/al, add Result and Pipe to fp
- Automate root token generation, split the main vault policy into separate ones
- Set up cert authentication
- Add //tools/ykman
- Add //tools/al, remove //tools/secrets, set up proper approle workflow
- Setup Vault token helper using gnome-keyring
- Disable mTLS of the Vault instance, add unsealing information, setup //tools/vault
- Fix some Js and Python CVEs
- Add some information about SSL
- Add new pgp key, rename //data/gpg to //data/pgp, add some info about ssh and pgp
- Add data to //projects/alwaldend.com, add //data/gpg
- Use write_source_files for git_hooks
- Add lvol role, setup LVM volumes on bm3
- Remove //tools/docs, remove .github
- Finalize rules_template refactoring
- Update dns
- Add rules_distroless, add some qubes os info
- Remove al_go_cross_binary, update the setup guide a bit
- Update the setup guide, update android tools, update leetcode, update books
- Update the repo setup doc a bit
- Add //tools/word_lists, update DNS and glossary
- Update leetcode
- Add build_test tests
- Fix urllib vulnerabilities
- Add editing, encryption, decryption
- Start adding secret rules, add badges to books
- Move all the logig out of the screen to the controller
- Add deploy to dockerhub, add //tools/oras
- Remove last modification footer
- Add missing features to the Pomodoro app, update project readmes, add github pages
- Update infinitime patch, start adding trufflehog rules
- Add hugo lock support, add proper hugo toolchain support, improve the ansible lock
- Move all remaining code to main
- Move a portion of tool code to main
- Move the registry to //projects/bazel_registry
- Add minisign rules
- Remove sites taxonomy, start adding xray_manager
- Fix release page rendering
- Move to a light nvim theme, add full git info to releases
- Add release_page generation, remove redundant release templates
- Fix nvim library paths
- Parallelize git info retrieval
- Move links to the config, use list groups
- Remove contracts tree
- Add changelogs
- Allow docs to put content outside of docs, refactor git to just use .git directly
- Add the footer back, add hugo env information
- Move release items to a list group, add item counter
- Add cross-compilation, move leetcode downloader contracts out of //contracts
- Refactor release templates into partials, add release cards
- Add RSS links, rewrite links shortcode to html, improve release tables
- Add file size to releases, add round_float partial
- Write release tool in go, start adding it to projects, add py proto generation
- Add release rules, add gzip rules, add several other tools, remove autoscrool deps from the root
- Add dev_shell rules, add make_install_binary, flatten sh rules, add dotfiles/bin
- Add //tools/make_install, start moving dotfiles to it
- Add label_link shortcode, add todo page
- Move book data to data/books
- Add tools/rfc
- Add bzl snippets to proto docs, add targets for ansible playbooks
- Remove the footer from the docs
- Add dnscontrol rules
- Move book data to the books page, add lazy loading, save some thumbnails locally
- Make tables more compact
- Disable inline partials, add last modified section
- Tweak tables again
- Improve tables on home and books pages
- Improve tables
- Do not use nested tables in docs/misc/books
- Fix book rendering, add arm CI for some reason
- Add git image, split root MODULE.bazel
- Add more taxonomies, remove docs tree, move alwaldend.com to projects
- Initial commit
- Update vulnerable Go dependencies
-
Add spellcheck skill
This commit was generated by an LLM.
-
Consolidate agent policy into owning skills
Reduce the root AGENTS.md from 255 lines to 141 by keeping repository-wide constraints visible and moving execution detail to the skill that owns it.
Make initial reads task-dependent, replace the absolute one-copy rule with one authoritative source, simplify the retry rule to its principle, and fix the generated-file delivery ambiguity. Add a single “When to load a skill” routing table ordered by task phase.
Add the repo-workspace skill so worktree isolation and task-scratch placement are established before the first write rather than when repo-delivery loads. Transfer commit-subject and trailer conventions into a repo-delivery reference and the Go and Bazel-native automation rules into repo-bazel. Reconcile the git-rebase-remote and repo-delivery drift so a task-owned rewrite may change ancestry while preserving every previously remote commit’s reachable progress.
OpenSpec-Change: infra/src/openspec/changes/consolidate-agent-policy-into-skills
LLM-disclaimer: This commit was generated by an LLM.
-
Restore light and dark site canvases and set the shared accent
The shared Docsy canvas set the same Bootstrap dark palette and the same black page background on
:root,[data-bs-theme="light"], and[data-bs-theme="dark"], so the light/dark toggle changed nothing. The site also rendered Bootstrap’s stock blue instead of its intended accent.Split the shared palette so light mode uses a pure white canvas with the light-mode palette and dark mode uses a pure black canvas with the dark-mode palette, and keep the pre-stylesheet paint and footer on the active mode. Assign
$primaryto#7c3aedbefore Bootstrap compiles, so links, buttons, badges, focus rings, and the dark-mode link tint all derive from one value rather than from a site-local copy.Both files stay in the reusable shell; the apex site consumes them through the existing declared exports and no longer carries the footer’s own blue.
OpenSpec-Change: projects/hugo_landing/openspec/changes/restore-light-dark-canvas-and-accent
LLM-disclaimer: This commit was generated by an LLM.