◆ BARKLY LABS
DOCUMENTATION
BARKLY / KNOWLEDGE

Barkly Website Automation — Functional Requirements

Generated documentation produced by Barkly Docs.

SOURCE: C:\Users\nickk\Documents\Funcitonal-Requiremnts\Barkly Website Automation — Functional Requirements.docx

Barkly Website Automation — Functional Requirements

FR-01 — Source-controlled deployment

The system SHALL deploy the website from the committed source repository.

The deployment system SHALL:

identify the commit being deployed

retrieve the requested Git revision

preserve the deployed commit identifier

report the deployed revision

fail if the requested revision cannot be retrieved

FR-02 — Website build

The deployment system SHALL build the Astro website before publishing it.

The system SHALL:

install or verify required dependencies

execute the project's defined build command

capture build output

detect build failures

prevent publication when the build fails

Requirement: A failed build SHALL NOT replace the currently deployed website.

FR-03 — Deployment staging

The system SHALL build the website in a staging location before replacing the live website.

repository

↓

source

↓

build

↓

staging/dist

↓

validation

↓

live website

The live website SHALL only be modified after a successful build and validation.

Barkly QA

FR-04 — Recursive page discovery

Barkly QA SHALL recursively discover website pages beginning from the configured site root.

Example:

/

├── about

├── architecture

├── charter

├── cyn-x

├── docs

├── funding

├── laas

├── projects

└── standard

The system SHALL discover additional pages through valid webpage links rather than requiring a manually maintained page list.

FR-05 — Navigation link validation

Barkly QA SHALL inspect actual webpage navigation links.

The system SHALL validate:

<a href="...">

links.

The system SHALL NOT treat the following as webpage navigation:

JavaScript resources

CSS resources

images

Astro development resources

Vite resources

source files

FR-06 — Broken-link detection

Barkly QA SHALL identify links that cannot successfully resolve.

The system SHALL report:

source page

target URL

HTTP status or connection error

failure type

Example:

BROKEN LINK

Target: /old-project

Found on: /projects

Status: HTTP 404

FR-07 — Internal URL normalization

Barkly QA SHALL resolve relative links against the configured website root.

The system SHALL support:

/about

/docs

/projects

without requiring a repository-specific deployment prefix such as:

/BarklyLabs-webpage/

The crawler SHALL support configurable deployment roots so the same QA system can operate locally and on the production VPS.

FR-08 — Recursive crawl protection

Barkly QA SHALL prevent infinite crawling.

The system SHALL:

maintain a visited-page set

avoid repeatedly crawling the same normalized URL

remove URL fragments when determining page identity

support a configurable maximum page count

FR-09 — QA failure status

Barkly QA SHALL return a non-zero process exit status when required validation fails.

This SHALL allow deployment automation to use QA as a deployment gate.

Example:

Build

↓

QA

↓

PASS → Deploy

FAIL → Stop

Barkly Deployment + QA Integration

FR-10 — Pre-publication QA

The deployment system SHALL execute required QA checks before replacing the live website.

A deployment SHALL NOT be considered successful if required QA checks fail.

FR-11 — Deployment report

Each deployment SHALL produce a machine-readable and human-readable result containing at minimum:

Commit

Build status

Pages discovered

Links checked

Broken links

QA status

Deployment status

Timestamp

Example:

BARKLY DEPLOYMENT

Commit: a83f91c

Build: PASS

QA:

Pages: 17

Links: 64

Broken: 0

Status: PASS

Deployment: PASS

Published revision: a83f91c

FR-12 — Failure preservation

If any required deployment stage fails:

Git

↓

Build

↓

QA

↓

Publish

the currently live version SHALL remain available.

This gives you the really important safety property:

A broken commit cannot automatically destroy the working website.

FR-13 — Deployment logging

The system SHALL maintain deployment history containing:

timestamp

commit

build result

QA result

deployment result

failure information where applicable

That gives Barkly a little history of what version was actually live.

FR-14 — Dry-run mode

Both Barkly Deploy and Barkly QA SHOULD support a dry-run mode.

Example:

python barkly_deploy.py --dry-run

The system SHALL report the actions it would perform without modifying the live deployment.

FR-15 — Local development support

The system SHALL support testing against a local Astro development or preview server.

Example:

localhost:4321

without confusing Astro/Vite development resources with website pages.

FR-16 — Production support

The same QA system SHALL support the production website hosted at the VPS domain.

Therefore:

LOCAL

localhost:4321/

↓

QA

PRODUCTION

barkly-labs.org/

↓

QA

should use the same underlying QA logic.

The really important architectural requirement

I'd make this an explicit Barkly principle:

Deployment automation SHALL treat build, validation, and publication as separate stages.

So you're not building one giant scary script.

Barkly Deploy

│

├── Source

│

├── Build

│

├── QA

│

├── Publish

│