All skills
aktsmm avatar

/opportunity-factory

@e63d714
by yamapanaktsmm/agent-skills26 stars
4

Run a reusable opportunity-to-artifact workflow: discover unmet needs, set up workspace factories, schedule recurring commander/worker/reporter prompts, batch-refine many items, optionally use SQLite state, build small artifacts, review quality, and track outcomes. Use when the user wants to repeatedly create apps, games, products, content, or experiments from market/user needs.

Use this Skill: https://skilld.dev/gh/aktsmm/agent-skills/opportunity-factory

This session only. Nothing lands on disk.

referencesdashboard-state.md

≈1.7k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Canonical Dashboard State

Use this reference when a factory has multiple workers, schedules, or candidate lanes.

Purpose

The dashboard state is the compact source of truth for status answers. It prevents future sessions from losing context or reconstructing state from scattered artifacts.

It is not only a visual dashboard. It is a durable JSON or equivalent state file that all workflows read first and update when status changes.

Required Behavior

Agents should:

  1. Read dashboard state before answering project status.
  2. Verify only the supporting files needed for the question.
  3. If durable artifacts conflict with the dashboard, update the dashboard from the newest durable evidence.
  4. Store paths and compact summaries, not full copied evidence.
  5. Separate observed, estimated, and assumed facts.

Update Triggers

Update the dashboard when a workflow:

  • creates/imports an artifact,
  • changes a queue item,
  • changes a gate or recommendation,
  • changes portfolio Top-N/watchlist/rejected state,
  • creates, disables, or changes automation,
  • records a blocker or approval-needed item,
  • changes schedule, cadence, limits, or workflow policy.
  • changes local prompt files or dashboard update contracts,
  • changes prototype/build verification state.
  • changes portfolio-promotion or product-maturation stage/WIP/counters,
  • changes private release-readiness status,

Suggested Schema

{
  "schemaVersion": 1,
  "lastUpdated": "YYYY-MM-DDTHH:mm:ssZ",
  "executiveSummary": {
    "status": "operational|blocked|needs_review",
    "summary": "",
    "sourceOfTruthForStatusAnswers": true
  },
  "activeCandidate": {},
  "portfolio": {},
  "workflows": [],
  "promptAssets": {},
  "prototypeLane": {},
  "portfolioPromotion": {},
  "productMaturation": {},
  "automationPolicy": {},
  "queues": {},
  "decisions": [],
  "risksAndBlockers": [],
  "nextActions": [],
  "answeringPolicy": {
    "useDashboardFirst": true,
    "thenVerifyWith": [],
    "ifConflict": "Prefer newest durable artifact/log, update dashboard, then answer."
  }
}

Write Safety

Before rewriting the dashboard:

  1. Create or refresh a .bak.
  2. Re-read the dashboard immediately before writing.
  3. If lastUpdated changed since the initial read, merge into the newer dashboard instead of overwriting.
  4. Write the full object and validate it.
  5. On validation failure, restore .bak, append a blocker to the pipeline log, and stop.

Anti-Patterns

  • HTML-only dashboard with no machine-readable canonical state.
  • Long evidence dumps that make the dashboard expensive to read.
  • Workers updating artifacts but not dashboard status.
  • Dashboard overwriting newer state from overlapping scheduled runs.
  • Status answers based on chat memory instead of durable state.
  • Prompt edits that are not reflected in dashboard decisions or pipeline logs.

Extended Fields (AI-Autonomous Operation)

以下 field は AI-Autonomous 運用時に workflow-review / worker / reporter-learner が append する。既存 workspace で未定義でも動作 (backward compatible)、新 event 発生時点で [] 初期化して append される。

{
  "approvalLog": [{"ts","operation","requestedBy","decidedBy","verdict","artifactRef","reason","criticVerdict"}],
  "pendingApprovals": [{"ts","task_id","reason","bucket"}],
  "fallbackLog": [{"ts","lane","task_id","verdict"}],
  "blockerGateLog": [{"ts","task_id","questions","verdict"}],
  "deferredBrowserWrites": [{"ts","task_id","operation"}],
  "discoveryFloorCounter": 0,
  "criticLog": [{"ts","layer","role","task_id","parentTaskId","producerModel","criticModel","producerFamily","criticFamily","familyResolver","receiptSource","receiptRef","receiptHash","independenceVerdict","questions_passed","questions_failed","verdict","note","workflowRound","inputHash","outputHash","findingIds","findingResolution","validationResults","repairTaskId","nextState","reason","evidenceRef"}],
  "persistenceOverrides": [{"ts","task_id","profile","requestedBy"}],
  "diminishingReturnsLog": [{"ts","task_id","metric","trend"}],
  "tuningLog": [{
    "ts": "ISO-8601",
    "item": "e.g. fallback-lane-order | discovery-floor-cycles | persistence-persistent-max-iter | cadence-worker | rubric-major-threshold",
    "before": "prior value",
    "after": "new value",
    "reason": "short justification",
    "evidenceRef": "path or hash of supporting artifact",
    "decidedBy": "workflow-review|user",
    "autonomyMode": "Normal|AUTO|FULL|ALL",
    "appliedCycle": 42,
    "revertThreshold": 3,
    "revertVerdict": null,
    "trackedMetrics": ["metric1","metric2"]
  }],
  "hardRuleViolationLog": [{
    "ts": "ISO-8601",
    "invariant": "e.g. approval-bucket-structure | layer3-gate-count | fallback-auto-refill | persistence-profiles | skill-tunable-vs-hard-section",
    "detectedIn": "path",
    "beforeSnapshot": "hash or excerpt",
    "verdict": "escalated-to-user|reverted"
  }]
}

Field 説明

  • approvalLog / pendingApprovals: references/approval-policy.md の Log Contract 参照
  • fallbackLog / blockerGateLog / deferredBrowserWrites / discoveryFloorCounter: references/fallback-lane.md 参照
  • criticLog: Layer 1/2/3 と修正・再レビューの唯一の durable log。別名の critic state を作らない。Layer 3 は model 名と family 判定を必須にし、independenceVerdict が different-family 以外なら fail-closed (blocked)
  • criticLog repair fields: workflowRound は durable な修正・再レビューの回数、findingIds と findingResolution は finding 単位の根拠、validationResults は機械比較可能な acceptance check 結果、receiptSource / receiptRef / receiptHash は独立criticの adapter/harness receipt、inputHash / outputHash は中断回復、nextState は repair / replan / defer の遷移を表す。詳細は references/rubber-duck-review.md の Repair -> Re-review Contract。
  • persistenceOverrides / diminishingReturnsLog: references/persistence-profile.md 参照
  • tuningLog: reference default の変更履歴。3 サイクル追跡 revert (revertVerdict を reporter-learner が populate)。references/tunable-defaults.md 参照
  • hardRuleViolationLog: workflow-review が invariant check で検出した hard rule 誤変更。references/tunable-defaults.md の Invariant Check 参照

Retention

  • Log 系 (approvalLog / fallbackLog / blockerGateLog / completed criticLog): 90 日 rotation、archive に押し出す
  • Layer 1 criticLog: 30 日 (直近だけ意味あり)
  • Open repair criticLog records are excluded from rotation until terminal state, so finding IDs and hashes remain available for recovery.
  • tuningLog: 恒久 (workflow-review の学習資産)
  • hardRuleViolationLog: 恒久 (audit 用)
  • pendingApprovals / discoveryFloorCounter / deferredBrowserWrites: state 値、rotation なし

Source: SKILL.md on GitHub

2 warnings22d3 checks · Risk MEDIUM
  • Gen Agent Trust Hub22d

    This skill is an autonomous agent framework that manages complex workflows. It is rated as medium severity because it is self-modifying (the AI edits its own instructions), establishes persistent automated loops, and automatically accesses local secrets for its operations. While it includes many internal safety rules, the high degree of autonomy requires review before deployment.

  • Socket22d

    No alerts

  • Snyk22d

    Risk: MEDIUM · 1 issue

Signed by skilld at e63d714. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 18 hours ago.

Activeupdated 4 weeks ago
argument-hint
対象ドメイン、成果物タイプ、制約、今回の入力
user-invocable
true
metadata
{
  "author": "yamapan (https://github.com/aktsmm)"
}

README badge

README badge for aktsmm/agent-skills/opportunity-factory