Obsidian Test Vault Smoke
SkillDocs & knowledgeValidate the personal-assistant Obsidian plugin in the repo-local test vault using both fast CLI runtime smoke and full app UI/UX interaction smoke. Use when end-to-end verification is needed after UI/runtime changes, Pagelet work, Chat, Memory/VSS, Preview/Stats, settings, release-gate smoke, or visible layout/copy/interaction changes. For real-device iOS validation, use `obsidian-ios-real-device-smoke`. For community compliance scan, use `obsidian-community-check`.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Obsidian Test Vault Smoke skill
What this skill tells your AI
The instructions your AI receives, as published by edonyzpc/personal-assistant in .agents/skills/obsidian-test-vault-smoke/SKILL.md and read by ahel’s review.
Core Rules
- Do not claim Obsidian validation without deploying the current build to
test/and observing the affected behavior in the running app. - Treat Jest, lint, type-check, build, and source scans as implementation validation, not app smoke.
- Require visible-window interaction for UI/UX PASS; CLI, DOM, and screenshots support the finding but do not replace real interaction.
- Use
obsidian vault=test <command>for every Obsidian CLI call.vault=testmust precede the command. - Choose the lightest tier that covers the changed surface.
Scope Freeze And Evidence Reuse
Before an expensive gate or app interaction:
- Classify the latest runtime delta as
code-only,runtime,visual/layout,interaction/state, orrelease/broad. - Freeze the observable target. For screenshot-led UI work, state direction, order, spacing, viewport, and interaction expectations in testable terms. Ask one product question before deployment if the target is ambiguous.
- Map changed surfaces to the minimum evidence. Mark unaffected surfaces
SKIP; do not run full Pagelet, provider, or cross-surface flows for a geometry-only change. - Reuse automated checks under
AGENTS.mdValidation Planning And Reuse, verifying relevant source/tests/fixtures/config and build inputs/results. Reuse observed app smoke only within the same turn while its runtime/assets, target vault state, and loaded build remain unchanged. Docs/evidence-only edits do not invalidate runtime smoke unless they change its acceptance rules. Input changes invalidate the affected evidence. - Freeze runtime files before
make deploy. If they change afterward, rerun only the affected validation gate and app proof.
Stop when every frozen acceptance check has current deployed evidence. Do not add adjacent gestures, orientations, provider calls, or unrelated surfaces solely to strengthen an already sufficient proof.
Validation Gate
Satisfy the complete Local Validation Gate from repo-root AGENTS.md
before app smoke. Reuse checks covered by the selected enclosing gate with
verified inputs/results: the production build covers type-checking and full
Jest covers the focused suites it includes. Supplement remaining checks,
including the runtime <style> / innerHTML / outerHTML source scan.
For failures, follow AGENTS.md Test Failure Diagnosis; an unavailable
app/device remains a validation gap, never a PASS.
Treat the source-scan rg exit code 1 with no output as PASS. Inspect every match manually. make deploy and the hosted community scan do not replace this local source scan.
Smoke Tiers
| Tier | Use when | Required checks |
|---|---|---|
quick | Narrow code-only or test-only change | Complete Local Validation Gate with focused suites; stop before app smoke only when no runtime/user path changed |
app-runtime | Runtime, command, packaging, Pagelet shell, Chat/Preview/Stats mount, Memory readiness | Local Validation Gate, make deploy, plugin reload, affected CLI/DOM probes, fresh console/error capture |
full-ui | Visible UI, CSS/layout/copy, Pagelet workflow, settings, keyboard/focus, mobile emulation | app-runtime plus real Obsidian interaction, screenshots, UX notes, and provider/write-path checks when applicable |
release-gate | Release, broad refactor, shared infrastructure | Local Validation Gate, make deploy, broad runtime matrix, required UI surfaces, and release evidence reconciliation |
make deploy already runs lint, a production build, full Jest, and asset
deployment. If those checks already passed for the current changes, use
make deploy-current to verify and copy the current build without repeating
them. Reuse conditions and test groups live in AGENTS.md Local Deployment;
build identity alone does not prove tests passed.
Workflow
- Inspect
git status --short, relevant diffs, and affected surfaces. - Freeze the observable target and classify the runtime delta.
- Select the deployment path below and complete or reuse its checks together
with the remaining Local Validation Gate checks from
AGENTS.md. - Select the smoke tier.
- For app smoke, deploy with
make deploybelow, or replace only that command withmake deploy-currentwhen the reuse conditions above hold, then reload:
make deploy
obsidian vault=test vault info=path
obsidian vault=test plugin:reload id=personal-assistant
obsidian vault=test plugin id=personal-assistant
- For visible changes, perform the cheapest visual target check immediately after reload. Stop on a direction, order, clipping, or viewport mismatch before deeper interactions.
- Read only the references required by the changed surface:
- For any
app-runtime,full-ui, orrelease-gaterun, read CLI runtime smoke. - For visible UI/UX work, read UI/UX interaction smoke.
- For Pagelet work, read both CLI runtime smoke and Pagelet smoke.
- For any
- For historical fixtures, regression expectations, and prior evidence, consult the current Pagelet smoke checklist. Treat its verification log as provenance, not current-run evidence.
- Record concrete
PASS,FAIL,BLOCKED, orSKIPoutcomes. - Always restore debug/mobile state, including after failure or interruption:
obsidian vault=test dev:debug off
obsidian vault=test dev:mobile off
Safety Boundaries
- Limit provider-backed checks to repo-local test-vault fixtures unless the user approves broader data. Report provider/model, note paths, and prompts sent.
- If a provider, browser, CLI, or GUI tool blocks the action, do not bypass the block; report
BLOCKEDand residual risk. - Stop before deleting or rewriting test-vault data that may be user-authored.
- Stop before publishing, pushing, creating releases, or mutating non-test external systems unless the user authorized that action.
- Keep hosted Obsidian Community scans distinct from the local source scan. A hosted scan submits a ref to an external service and is never an automatic part of this skill.
- During
release-gate, invokeobsidian-community-checkonly when the user explicitly requested the hosted scan or the activestable-releaseworkflow explicitly authorized it. Otherwise report it as not run.
Output
Validation:
- Runtime delta: `<code-only/runtime/visual-layout/interaction-state/release-broad>`
- Frozen target: `<observable acceptance checks>`
- Reused evidence: `<same-state evidence or none>`
- PASS: `<check>` - `<observed result>`
- FAIL: `<path>` - `<regression or product gap>`
- BLOCKED: `<path>` - `<external blocker and residual risk>`
- SKIP: `<path>` - `<why it was outside this tier>`
- Stop point: `<why the selected tier is complete>`
CLI runtime smoke:
- Vault: `test/`
- Tier: `<quick/app-runtime/full-ui/release-gate>`
- Deployment/reload: `<result>`
- Obsidian: `<version>`
- Target: `<note/view/command>`
- Provider/model/prompt: `<if used>`
- Artifact: `<DOM output, console excerpt, runtime file>`
UI/UX smoke:
- Visible path: `<entry and interaction>`
- Observed UX: `<layout, copy, feedback, accessibility>`
- Screenshot: `<path if captured>`
- UX findings: `<UX-P0/UX-P1/UX-P2 or none>`
Cleanup:
- Debug off: PASS/FAIL
- Mobile emulation off: PASS/FAIL
Hosted community scan:
- Authorized and run / not authorized and not run / BLOCKED
Related Skills
- Use
personal-assistant-reviewfor code-level review. - Use
obsidian-ios-real-device-smokeafter local app smoke for real-device iOS validation. - Use
obsidian-community-checkonly for an authorized hosted community scan.
Signals
- GitHub stars
- 149
- Forks
- 8
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
obsidian-test-vault-smoke- Source
- github.com/edonyzpc/personal-assistant