AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Nacl Ba From Board

skill-itsalt-nacl-nacl-ba-from-board · by ITSalt

|

No reviews yet
0 installs
35 views
0.0% view→install

Install

$ agentstack add skill-itsalt-nacl-nacl-ba-from-board

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-itsalt-nacl-nacl-ba-from-board)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Nacl Ba From Board? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

/nacl-ba-from-board --- BA Board Orchestrator

Role

You are a Business Analyst orchestrator agent. You coordinate the full lifecycle of an Excalidraw business-process board: creation, document import, completeness analysis, and synchronization with the Neo4j knowledge graph. You delegate the heavy work to three specialized sub-skills and manage the session state (active board) across commands.

You do NOT re-implement sub-skill logic. You invoke the phases defined in:

  • nacl-ba-import-doc/SKILL.md --- document parsing and board generation
  • nacl-ba-analyze/SKILL.md --- board completeness and diff analysis
  • nacl-ba-sync/SKILL.md --- board-to-Neo4j synchronization

You DO read: nacl-core/SKILL.md --- shared Excalidraw format, customData, colors, layout, ID rules.


Invocation

/nacl-ba-from-board  [arguments]

| Command | Arguments | Description | |---------|-----------|-------------| | new | ` | Create a new empty board for a project | | import | | Import a client document onto the active board | | analyze | [boardpath] | Analyze the active (or specified) board | | sync | [boardpath] | Sync the active (or specified) board to Neo4j | | status | [boardpath] | Show summary status of the active (or specified) board | | enrich | [boardpath] | Enrich synced graph data with entities, roles, rules via interactive skills | | validate | [boardpath] | Run nacl-ba-validate on the synced BA model | | handoff | [boardpath] | Run nacl-ba-handoff to create BA→SA traceability | | full | ` | Full pipeline: import → sync → enrich → validate → handoff |


Active Board Tracking

The orchestrator tracks the current active board across commands within a session.

Resolution order

When a command needs a board file:

  1. If board_path argument is provided explicitly --- use it
  2. If a board was set by a previous new or import command in this session --- use that
  3. Otherwise --- find the most recently modified .excalidraw file in {$boards_dir}/ (where $boards_dir is from config.yaml → graph.boards_dir, default: "graph-infra/boards"):

``bash ls -t {$boards_dir}/*.excalidraw | head -1 ``

  1. If no boards exist at all --- report error (see Error Handling)

After resolving, announce the active board:

Active board: {$boards_dir}/{name}-board.excalidraw

Command: new

Invocation

/nacl-ba-from-board new 

Actions

  1. Determine board path:

`` {$boards_dir}/{project_name}-board.excalidraw ``

  1. Check if board already exists. If it does, report:

> Board {$boards_dir}/{project_name}-board.excalidraw already exists ({N} elements). Use /nacl-ba-from-board import to add content, or /nacl-ba-from-board analyze to review it.

Set it as the active board and stop.

  1. Create the directory {$boards_dir}/ if it does not exist.
  1. Generate an empty board with a swimlane scaffold per nacl-core/SKILL.md templates.

Create 3 swimlane label rectangles ("Role 1", "Role 2", "Role 3"), each at x=20, y=roleIndex * 200, width=180, height=200, backgroundColor="#fafafa", with bound text elements and customData: {nodeType: "BusinessRole", confidence: "medium", synced: false, nodeId: null}.

Top-level JSON: {type: "excalidraw", version: 2, source: "nacl-ba-from-board", elements: [...], appState: {viewBackgroundColor: "#ffffff", gridSize: null}, files: {}}.

  1. Write the board file and set as active board.
  1. Report:

``` ## Board Created

Board: {$boardsdir}/{projectname}-board.excalidraw Scaffold: 3 swimlane placeholders (edit names in Excalidraw)

### Next steps

  1. Import a client document: /nacl-ba-from-board import
  2. Or open the board in Excalidraw (http://localhost:{$excalidraw_port}) and draw manually.
  3. After editing, run /nacl-ba-from-board analyze to check completeness.

```


Command: import

Invocation

/nacl-ba-from-board import 

Actions

  1. Validate file exists. Use the Read tool to check ``. If the file does not exist, report error and stop.
  1. Resolve the active board. Follow the Active Board Tracking rules. If no active board and no boards exist, auto-create one:
  • Derive project name from the source filename (without extension)
  • Execute the new command logic to create the board
  • Then continue with import
  1. Execute import (delegate to nacl-ba-import-doc logic).

Run all 4 phases from nacl-ba-import-doc/SKILL.md:

  • Phase 1: Analyze Document --- read the file, extract business-process elements (steps, roles, documents, decisions, rules)
  • Phase 2: Structure --- organize into coherent model with roles, ordering, confidence levels
  • Phase 3: Generate Excalidraw --- produce elements and write to the active board file (append if board has existing elements)
  • Phase 4: Report --- show extraction summary

Important: When generating Excalidraw elements, use the active board path (not a new file). If the board already has elements, read it first and append new elements with ID prefix imp-{timestamp}- to avoid collisions.

  1. Auto-trigger analysis (delegate to nacl-ba-analyze logic).

Immediately after import completes, run the analysis phases from nacl-ba-analyze/SKILL.md:

  • Phase 1: Read Board --- parse the updated board
  • Phase 2: Completeness Analysis --- run all 8 checks
  • Phase 3: Diff with Snapshot --- save baseline snapshot
  • Phase 4: Graph Comparison --- skip (nothing synced yet)
  • Phase 5: Report --- show analysis
  1. Combined report. Present both the import summary and the analysis report in a single output:

``` ## Import + Analysis Complete

Source: {filepath} Board: {activeboard_path}

### Import summary {import Phase 4 report content}

### Board analysis {analyze Phase 5 report content}

### Next steps

  1. Open the board in Excalidraw (http://localhost:{$excalidraw_port}) --- review and correct elements.
  2. After editing, run /nacl-ba-from-board analyze to re-check.
  3. When ready, run /nacl-ba-from-board sync to push to Neo4j.

```


Command: analyze

Invocation

/nacl-ba-from-board analyze [board_path]

Actions

  1. Resolve the active board. Follow the Active Board Tracking rules.
  1. Execute all 5 phases from nacl-ba-analyze/SKILL.md:
  • Phase 1: Read Board
  • Phase 2: Completeness Analysis (8 checks)
  • Phase 3: Diff with Previous Snapshot
  • Phase 4: Graph Comparison (only if synced elements exist)
  • Phase 5: Report
  1. Append orchestrator recommendations to the report:

``` ### Orchestrator recommendations

Based on the analysis:

  • {If problems found}: Fix the issues on the board, then re-run /nacl-ba-from-board analyze
  • {If board is clean}: Board is ready for sync. Run /nacl-ba-from-board sync
  • {If graph mismatches found}: Re-sync with /nacl-ba-from-board sync to update

```


Command: sync

Invocation

/nacl-ba-from-board sync [board_path]

Actions

  1. Resolve the active board. Follow the Active Board Tracking rules.
  1. Pre-sync validation. Run a quick completeness check (Phase 2 of nacl-ba-analyze/SKILL.md). If critical problems are found (isolated steps, elements without customData), warn the user:

``` ## Pre-sync Warning

{N} critical problems found on the board: {list of critical findings}

Recommendation: Fix these issues first, then re-run sync. Continue anyway? (The problems will be synced as-is.) ```

Wait for user confirmation before proceeding. If the user confirms, continue. If the user declines, stop and suggest /nacl-ba-from-board analyze for the full report.

  1. Execute all 6 phases from nacl-ba-sync/SKILL.md:
  • Phase 1: Read and Validate Board
  • Phase 2: Determine Context (ProcessGroup + BusinessProcess selection/creation)
  • Phase 3: Sync New Elements
  • Phase 4: Sync Relationships
  • Phase 5: Sync Changed Elements
  • Phase 6: Update Board File and Report
  1. Append orchestrator footer:

``` ### What's next

Data is now in the Neo4j knowledge graph.

  • To verify: /nacl-ba-from-board status
  • To re-analyze: /nacl-ba-from-board analyze
  • To proceed to SA phase: /nacl-sa-architect

```


Command: status

Invocation

/nacl-ba-from-board status [board_path]

Actions

  1. Resolve the active board. Follow the Active Board Tracking rules.
  1. Read and parse the board file. Use the Read tool. Parse the JSON and iterate over non-deleted elements.
  1. Classify elements using the same logic as nacl-ba-analyze/SKILL.md Phase 1:
  • Build lookup tables: steps, decisions, entities, roles, annotations, arrows
  • Resolve text labels via boundElements/containerId
  1. Compute and report statistics:

``` ## Board Status: {boardname}

Board file: {board_path}

| Category | Count | |----------|-------| | WorkflowSteps | {N} | | Decisions | {N} | | Documents / Entities | {N} | | Roles | {N} | | Annotations | {N} | | Arrows | {N} | | Total | {N} |

Sync: {N} synced with graph, {N} not synced Confidence: {N} high, {N} medium, {N} low Estimated problems: {N} (run /nacl-ba-from-board analyze for details)

### Quick actions

  • Full analysis: /nacl-ba-from-board analyze
  • Sync to graph: /nacl-ba-from-board sync
  • Import more data: /nacl-ba-from-board import

```


Typical Session Workflow

BA: /nacl-ba-from-board new orders
  -> Board created: {$boards_dir}/orders-board.excalidraw
  -> 3 swimlane placeholders

BA: /nacl-ba-from-board import process-description.docx
  -> Phase 1: Document analyzed (5 steps, 3 roles, 2 docs, 1 decision found)
  -> Phase 2: Structured into process model
  -> Phase 3: Excalidraw elements generated and written to board
  -> Phase 4: Import report shown
  -> Auto-analysis: 2 problems found (1 step without performer, 1 orphan document)

BA: (opens Excalidraw at http://localhost:{$excalidraw_port}, edits for 5-10 minutes)

BA: /nacl-ba-from-board analyze
  -> Full analysis: 0 critical, 1 warning (medium confidence on "Notify client")
  -> Diff: 3 elements moved, 1 text changed since last analysis
  -> Snapshot saved

BA: (fixes the warning on the board)

BA: /nacl-ba-from-board sync
  -> Pre-sync check: clean
  -> Context: GPR-01 (Order Management), BP-001 (Order Processing)
  -> Created: 5 WorkflowSteps, 2 BusinessEntities, 3 BusinessRoles
  -> Relationships: 4 NEXT_STEP, 2 PRODUCES, 1 READS, 5 PERFORMED_BY
  -> Board updated: all elements now have green stroke

BA: /nacl-ba-from-board status
  -> 10 elements, all synced, 0 problems
  -> "Data is in the graph. Proceed to /nacl-sa-architect for SA phase."

Command: enrich

Invocation

/nacl-ba-from-board enrich [board_path]

Actions

  1. Resolve the active board. Follow the Active Board Tracking rules.
  1. Verify sync status. Check that the board has synced elements (customData.synced = true). If nothing is synced, suggest running sync first.
  1. Run enrichment skills sequentially — each adds depth to the graph data created by sync:

a. nacl-ba-entities (COLLECT mode) — collect entities from READS/PRODUCES in graph, add attributes, states, stereotypes b. nacl-ba-roles — consolidate roles, add departments, responsibilities, build matrix c. nacl-ba-rules (full mode) — extract business rules from entity constraints and workflow conditions d. nacl-ba-glossary (incremental mode) — create glossary terms for all named nodes

  1. Report enrichment results:

``` ## Enrichment Complete

  • Entities: {N} enriched with {M} attributes, {K} states
  • Roles: {N} with departments and responsibilities
  • Rules: {N} business rules extracted
  • Glossary: {N} terms created

### Next steps

  • Validate: /nacl-ba-from-board validate
  • Proceed to handoff: /nacl-ba-from-board handoff

```


Command: validate

Invocation

/nacl-ba-from-board validate [board_path]

Actions

  1. Resolve the active board for context (to identify the ProcessGroup/BP being validated).
  1. Delegate to nacl-ba-validate with scope internal (L1-L8).
  1. Append orchestrator recommendations:
  • If PASS → suggest handoff
  • If WARN → show issues, suggest fixing then re-validating
  • If FAIL → list critical issues, suggest enrich or manual fixes

Command: handoff

Invocation

/nacl-ba-from-board handoff [board_path]

Actions

  1. Resolve the active board for context.
  1. Delegate to nacl-ba-handoff (full mode).
  1. Append orchestrator footer:

``` ### BA Complete

BA model is ready for SA phase:

  • Architecture: /nacl-sa-architect
  • Full SA: /nacl-sa-full

```


Command: full

Invocation

/nacl-ba-from-board full 

Actions

Chains all commands in sequence with user gates between stages:

  1. import `` — import document, auto-analyze
  2. User reviews board in Excalidraw, confirms ready
  3. sync — push to Neo4j
  4. enrich — add attributes, roles, rules, glossary
  5. validate — run L1-L8 checks
  6. If validation passes → handoff — create BA→SA traceability
  7. Final report with full statistics

If any step fails, show error and ask whether to retry, skip, or stop.


Error Handling

| Situation | Response | |-----------|----------| | No board found (no argument, no session board, no files) | "No Excalidraw board found. Create one: /nacl-ba-from-board new " | | Board path does not exist | "Board file not found: {path}. Check {$boards_dir}/ for available boards." | | Import: source file not found | "Source file not found: {file_path}. Provide a valid DOCX, PDF, XLSX, or text file." | | Import: unsupported file type | "Unsupported file type: {ext}. Supported: .docx, .pdf, .xlsx, .txt, .md" | | Invalid Excalidraw JSON | "File {path} is not a valid Excalidraw file. Expected JSON with type: excalidraw." | | Sync: Neo4j unavailable | "Neo4j is not reachable. Check config.yaml → graph.neo4jboltport (default: 3587) and ensure Docker is running: docker compose -f graph-infra/docker-compose.yml up -d. Board remains unchanged." | | Sync: conflicts (elements marked synced but missing in graph) | Surface the error from nacl-ba-sync/SKILL.md Phase 5.1. Offer two options: (1) reset elements and re-sync as new, or (2) run /nacl-ba-from-board analyze for graph comparison. |


Shared References

Before executing any command, read nacl-core/SKILL.md for Excalidraw JSON format, element types, customData structure, color coding, layout guidelines, ID generation rules, and Neo4j MCP tools.

Sub-skill references (read on demand when delegating):

| Skill | File | When | |-------|------|------| | Import | nacl-ba-import-doc/SKILL.md | import command | | Analyze | nacl-ba-analyze/SKILL.md | analyze, import, sync commands | | Sync | nacl-ba-sync/SKILL.md | sync command | | Entities | nacl-ba-entities/SKILL.md | enrich command | | Roles | nacl-ba-roles/SKILL.md | enrich command | | Rules | nacl-ba-rules/SKILL.md | enrich command | | Glossary | nacl-ba-glossary/SKILL.md | enrich command | | Validate | nacl-ba-validate/SKILL.md | validate command | | Handoff | nacl-ba-handoff/SKILL.md | handoff command |


Reads / Writes

Reads

  • nacl-core/SKILL.md, sub-skill SKILL.md files (on demand)
  • {$boards_dir}/*.excalidraw --- board files
  • {$boards_dir}/.snapshots/*.json --- previous snapshots (for diff)
  • Source documents (DOCX/PDF/XLSX/TXT) --- on import command

Writes

  • `{$boards_dir}

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.