fluxloop-context — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited fluxloop-context (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Scan-Summarize-Save: Codebase scan → Profile summary → Server upload + Local save (Dual Write)
📎 All user-facing output must follow: read skills/_shared/OUTPUT_FORMAT.md
fluxloop context show → confirm project is set up.fluxloop/test-memory/ check:agent-profile.md (show existing profile).fluxloop/test-memory/ directory (first run)fluxloop data push (upload key files).fluxloop/test-memory/agent-profile.md with metadataagent-profile.md is current (git_commit matches)📎 Full protocol: read skills/_shared/CONTEXT_PROTOCOL.md 📎 Collection procedure: read skills/_shared/CONTEXT_COLLECTION.md
Run fluxloop context show first:
skills/setup/SKILL.md inline → on completion "✅ Setup complete. Continuing with context." → return to Step 1⚠️ Each Step must be executed sequentially. Do not batch Bash/Read calls in parallel. (📎 See CONTEXT_PROTOCOL.md)
Check if .fluxloop/test-memory/agent-profile.md exists.
If exists:
scan_date and git_commit from metadataIf missing: "This is the first scan." → proceed to Step 2
📎 Follow the collection procedure: read skills/_shared/CONTEXT_COLLECTION.md
Scan targets:
Structure the scan results:
Ask: "Do you have any reference documents or validation data? (enter path / skip)"
Refine and send the project intent to the FluxLoop server based on scan results from Step 2.
💡 What is Intent Refine? This step summarizes the agent's purpose, capabilities, and tech stack into a format the server can understand and transmit it. The server analyzes this information to improve scenario generation and test quality.
fluxloop intent refine --intent "<1-3 sentence summary of agent purpose and key capabilities>"--intent parameter: auto-generated based on Step 2 scan results (agent role, key features, tech stack)📎 Staging environment: read skills/_shared/STAGING.md (add --staging flag for staging environments)Upload key files to the server. Before uploading, classify each file as Context or Ground Truth.
#### 5-1. Data Classification Decision Tree
💡 Context vs Ground Truth: Context data is reference material that informs test generation (e.g., docs, specs, code). Ground Truth (GT) data is a structured dataset with expected answers used to validate agent output correctness after test execution.
For each file the user provides, apply this decision tree in order:
File to upload
│
├─ 1. User explicitly says "ground truth", "validation data",
│ "expected answers", "정답 데이터", "검증 데이터"
│ → ✅ Ground Truth
│
├─ 2. User explicitly says "context", "reference", "참고 자료"
│ → ✅ Context
│
├─ 3. Check file type:
│ │
│ ├─ Unstructured (md, txt, pdf, docx, html)
│ │ → ✅ Context (always)
│ │
│ └─ Structured (csv, json, jsonl, xlsx, tsv)
│ │
│ ├─ 4. Inspect content — does it have input+output column pairs?
│ │ (e.g., "question"+"answer", "input"+"expected_output",
│ │ "query"+"label", "prompt"+"response")
│ │ → YES → ✅ Ground Truth (confirm with user)
│ │ → NO or UNCLEAR → Step 5
│ │
│ └─ 5. Ask the user:
│ "이 파일은 구조화된 데이터입니다. 용도를 선택해주세요:
│ 1) 참고 자료 (Context) — 테스트 입력 생성 시 참고용
│ 2) 정답 데이터 (Ground Truth) — 에이전트 출력의 정확성 검증용"Key distinction:
| Aspect | Context | Ground Truth |
|---|---|---|
| Purpose | Informs input synthesis quality | Validates output correctness |
| File types | Any (md, pdf, csv, etc.) | Structured only (csv, json, jsonl, xlsx) |
| Requires scenario | No (project library) | Yes (must bind to scenario) |
| Has labels/answers | No | Yes (input + expected output columns) |
| Examples | README, API spec, user guide | Q&A pairs, expected outputs, scoring rubrics |
#### 5-2. Context Upload (default)
fluxloop data push README.md
fluxloop data push <agent-main-file> --bind--bind links the file to the current scenario (use only when a scenario is selected)--bind#### 5-3. Ground Truth Upload
⚠️ GT upload requires an active scenario. If no scenario exists, skip GT upload and note: "Ground Truth data can be added after scenario creation (scenario skill)."
fluxloop data push <gt-file> --usage ground-truth --scenario <scenario_id> \
--label-column <col>GT options:
| Option | Required | Description | ||
|---|---|---|---|---|
--usage ground-truth | Yes | Activates GT mode (forces DATASET category) | ||
--scenario <id> or --bind | Yes | GT must be bound to a scenario | ||
--label-column <col> | Recommended | Column containing expected answers | ||
| `--split <train\ | dev\ | test>` | No | Data split |
--row-filter <expr> | No | Filter rows before materialization | ||
--sampling-seed <N> | No | Reproducibility seed (default: 42) |
After successful GT upload, the CLI auto-materializes GT profile and contracts. Display:
✅ Data (GT) → {filename} uploaded + bound to scenario
data_id: {data_id}
profile_id: {profile_id}
gt_contract_count: {N}Required result output: After all uploads, display: ✅ Data → N files uploaded to project library (+ GT summary if applicable) (Data actions have no URL — see POST_ACTIONS.md)Ensure .fluxloop/test-memory/ directory exists (create if missing).
Save to .fluxloop/test-memory/agent-profile.md:
<!-- scan_date: {current ISO8601} | git_commit: {git rev-parse --short HEAD} -->test-memory-template/agent-profile.mdShow the generated profile to the user:
| Error | Response |
|---|---|
| Project not set up | Apply Prerequisite Resolution → suggest inline setup execution |
| No README found | Fall back to other files (pyproject.toml, main file); create a limited profile |
fluxloop intent refine failure | Log error, proceed to next step (best-effort — does not block workflow) |
fluxloop data push failure | Check network, verify file path, confirm login status |
| GT upload without scenario | "Ground Truth requires a scenario. Create one first (scenario skill), then upload with --usage ground-truth." |
| GT materialization 409 | "Check status: fluxloop data gt status --scenario <id>. Retry bind after processing completes." |
git rev-parse failure (not a git repo) | Set git_commit to no-git; note that stale detection is unavailable |
Profile ready. Available next action:
| Step | Command |
|---|---|
| Check | fluxloop context show |
| Intent | fluxloop intent refine --intent "..." |
| Upload | fluxloop data push <file> |
| Upload + bind | fluxloop data push <file> --bind |
| Upload (GT) | fluxloop data push <file> --usage ground-truth --scenario <id> --label-column <col> |
| GT status | fluxloop data gt status --scenario <id> |
| Git hash | git rev-parse --short HEAD |
📎 Full CLI reference: read skills/_shared/QUICK_REFERENCE.md
agent-profile.md before scanning — avoid redundant worktest-memory-template/agent-profile.md for output formatscan_date, git_commit) — required for stale detectiondata push) and local save (agent-profile.md) at the same time--bind only when a scenario is already selectedgit_commit: no-git and note stale detection is unavailableagent-profile.md (not append)~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.