fbarbu15 845d6b8dcd Chore/roadmap validator (#318)
## Summary

- Introduce a standalone Python roadmap validator with a CLI entry
point, modular validation pipeline, and GitHub Actions wiring so roadmap
content can be linted locally and in CI.
- Provide reusable validation primitives for path resolution,
front-matter parsing, identity checks, task parsing, catalog
enforcement, and template adherence.
- Document usage, configuration, and workflow behaviour to make the
validator approachable for contributors.

## Validator Details

- **Core tooling**
- Added the `tools/roadmap_validator/` package with `validate.py` (CLI),
`validator.py` (orchestration), and helper modules (`tasks.py`,
`identity.py`, `paths.py`, `constants.py`, `issues.py`).
- CLI supports directory/file targets, skips default filenames, emits
GitHub annotations, and integrates optional substring filtering
- README explains features, environment variables, and development
guidance.
- **Catalog and template enforcement**
- `catalog.py` verifies each allowed content unit has `index.md` and
`preview.md`, confirms roadmap entries appear under the proper
quarter/area, and flags stale or missing links.
- `templates.py` enforces template basics: front matter completeness,
`## Description` ordering/content, template placeholder cleanup, and
task section detection.
- **Task validation**
- `tasks.py` checks required metadata (`owner`, `status`, `start-date`,
`end-date`), date formats, populated descriptions/deliverables, TODO
markers, tangible deliverable heuristics, and `fully-qualified-name`
prefixes.
- **Workflow integration**
- `.github/workflows/roadmap-validator.yml` runs the validator on pushes
and manual dispatch, installs dependencies, scopes validation to changed
Markdown, and surfaces findings via GitHub annotations.

## Existing Roadmap Updates

- Normalised 2025q4 commitments across Web, DST, QA, SC, and other units
by filling in missing descriptions, deliverables, schedule notes,
recurring task statuses, and maintenance tasks.
- Added tasks where absent, removed remaining template placeholders,
aligned fully qualified names, and ensured roadmap files conform to the
new validator checks.

## Testing

```bash
python tools/roadmap_validator/validate.py *2025q4*
```

CI: `Roadmap Validator` workflow runs automatically on pushes/dispatch.

---------

Co-authored-by: kaiserd <1684595+kaiserd@users.noreply.github.com>
2025-10-28 15:41:11 +02:00
2025-10-28 15:41:11 +02:00
2023-08-21 15:36:10 -04:00
2023-09-25 17:22:37 -04:00
2025-10-28 15:41:11 +02:00
2025-01-23 15:12:43 +01:00
2023-08-02 20:59:56 -07:00
2025-10-28 15:41:11 +02:00
2023-08-21 15:36:10 -04:00
2023-10-20 00:55:37 -07:00
2023-08-20 08:57:56 -07:00
2023-08-07 23:57:24 -07:00
2025-08-04 14:46:44 +02:00
2023-08-21 15:36:10 -04:00
2023-07-22 17:27:41 -07:00
2025-10-23 11:51:20 +02:00
2021-07-18 09:35:42 -04:00
2024-10-01 08:30:25 +02:00
2023-08-21 15:36:10 -04:00
2023-10-12 13:14:14 -04:00
2023-07-22 17:27:41 -07:00
2025-08-04 14:46:44 +02:00

Vac Roadmaps and Reports

Overview

This repository contains the aggregated technical roadmaps of Vac R&D Service Units. It is an attempt to provide easy access to what we're all actively working on, and how it's going.

In its current form, it is an implementation of a Quartz "mind-garden". This repository is built and served to https://roadmap.vac.co

Contribution

If you see a type or broken link, PRs are always welcome :) If there is information you'd like to see included that isn't here, create and issue :)

CI/CD

CI builds master and pushes to gh-pages branch, which is hosted at https://roadmap.vac.dev/.

The hosting is done using Caddy server with Git plugin for handling GitHub webhooks.

Information about deployed build can be also found in /build.json available on the website.

Using Obsidian

Quartz is created to serve a static site off of an Obsidian vault, and thus is the preferred way to manage content locally. In order for all it to function properly, a few things need to be done properly.

First and foremost, Quartz uses links references with content as the root directory, so when opening in Obsidian, open the content folder, and not the repo directory.

Then the following vault settings need to be configured

  • under Options --> Files and Links
    • enable Automatically update internal links
    • Link format should be set to Absolute path in vault
    • enable use Wikilinks

In order to use the templates in the Templates folder for auto populating commmon files,

  • Install and enable Templater in the Community Plugins
    • set the Templates folder to templates
    • enable automatic jump to cursor
    • enable Trigger Templater on new file creation
    • enable Folder templates
    • assign whichever templates you want to be triggered when a new file is created in a given folder.

Refer the Templater documentation for how to create your own templates.

Description
No description provided
Readme 509 MiB
Languages
TypeScript 55.9%
JavaScript 17%
SCSS 16.5%
Python 9.6%
Shell 0.7%
Other 0.2%