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
3 changes: 3 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,9 @@ jobs:
- name: Build base-demo
run: ../base/bin/basectl build base-demo --workspace ..

- name: Show Base docs URL
run: ../base/bin/basectl docs --show-url

- name: Run base-demo non-interactively
run: ../base/bin/basectl demo base-demo --workspace .. -- --non-interactive

Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ basectl logs --limit 3
basectl history --project base-demo --limit 5
basectl build base-demo
basectl demo base-demo # macOS only
basectl docs --show-url
basectl export-context base-demo --format markdown --print
```

Expand Down Expand Up @@ -106,6 +107,7 @@ The commands above exercise the complete Base project loop:
show the local audit trail for recent Base activity.
- `basectl build base-demo` runs the default build target (`info`) declared in the manifest.
- `basectl demo base-demo` runs the macOS project-owned walkthrough.
- `basectl docs --show-url` prints the Base documentation home page URL without opening a browser.
- `basectl export-context base-demo --format markdown --print` prints the
repository AI context bundle for assistant handoff.

Expand Down
11 changes: 11 additions & 0 deletions demo/demo.sh
Original file line number Diff line number Diff line change
Expand Up @@ -469,6 +469,16 @@ export_context_step() {
pause
}

docs_step() {
local output

step 16 "Documentation Shortcut"
output="$(capture_command "$BASE_DEMO_BASECTL" docs --show-url)"
printf '%s\n' "$output"
require_contains "docs command" "$output" "github.com/basefoundry/base"
pause
}

closing_summary() {
printf '\nWalkthrough Summary\n\n'
printf 'Manifest fields exercised: brewfile, mise, python, health, ide, activate, commands, test, build, demo, and artifacts.\n'
Expand Down Expand Up @@ -501,6 +511,7 @@ main() {
build_step
demo_step
export_context_step
docs_step
closing_summary
}

Expand Down
6 changes: 6 additions & 0 deletions tests/demo_test.bats
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,9 @@ case "$*" in
printf '# AI Context Export: base-demo\n'
printf '## .ai-context/manifest.md\n'
;;
docs\ --show-url)
printf 'https://github.com/basefoundry/base#readme\n'
;;
*)
printf 'unexpected basectl args: %s\n' "$*" >&2
exit 1
Expand Down Expand Up @@ -314,6 +317,8 @@ EOF
[[ "$output" == *"python-api build target validated"* ]]
[[ "$output" == *"AI Context Export"* ]]
[[ "$output" == *"AI Context Export: base-demo"* ]]
[[ "$output" == *"Documentation Shortcut"* ]]
[[ "$output" == *"github.com/basefoundry/base"* ]]
[[ "$output" == *"Manifest fields exercised:"* ]]
[[ "$output" == *"docs/representative-environment.md"* ]]
[[ "$output" == *"banyanlabs"* ]]
Expand Down Expand Up @@ -349,4 +354,5 @@ EOF
grep -Eq "^basectl build base-demo python-api --workspace .+$" "$state_file"
grep -Eq "^basectl demo base-demo --workspace .+ --dry-run -- --non-interactive$" "$state_file"
grep -Eq "^basectl export-context base-demo --workspace .+ --format markdown --print$" "$state_file"
grep -Eq "^basectl docs --show-url$" "$state_file"
}
20 changes: 20 additions & 0 deletions tests/validate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -490,6 +490,26 @@ grep -Fq 'recommended guided path' README.md || {
exit 1
}

grep -Fq 'basectl docs --show-url' README.md || {
printf 'README.md does not document basectl docs --show-url in Quick Start.\n' >&2
exit 1
}

grep -Fq 'Show Base docs URL' .github/workflows/tests.yml || {
printf '.github/workflows/tests.yml does not show the Base docs URL in CI.\n' >&2
exit 1
}

grep -Fq 'basectl docs --show-url' .github/workflows/tests.yml || {
printf '.github/workflows/tests.yml does not run basectl docs --show-url in CI.\n' >&2
exit 1
}

grep -Fq 'github.com/basefoundry/base' demo/demo.sh || {
printf 'demo/demo.sh does not validate the Base docs URL host.\n' >&2
exit 1
}

grep -Fq 'basectl activate base-demo # macOS only' README.md || {
printf 'README.md does not annotate activate as macOS-only in Quick Start.\n' >&2
exit 1
Expand Down
Loading