Internal Product Info
FlowShaper
Product review board. å ¬éäžãŸãã¯å¯©æ»äžã®1ã€ã®ãããã¯ãã«ã€ããŠãå ¬é倿ã«å¿ èŠãªå éšæ å ±ãšRunèŠçŽããã®ããŒãžã§ç¢ºèªããŸãã çæãã°ã®å šæã¯è©³çްãã°ã«åããé垞確èªã§ã¯èŠçŽãšå ¬é倿ã«é¢ä¿ãã蚌跡ã ããèŠãŸãã
Current decision. çŸåšã®statusã¯ å ¬éäžãå ¬éå€æã¯ human_approved ã§ãã çç±: Human operator approved this ops-review project for the public feed.
Readiness checks. 现ããValidationCheckããã¹ãŠäžŠã¹ãã®ã§ã¯ãªããå ¬éå¯åŠã«åœ±é¿ããé ç®ãåªå ããŠè¡šç€ºããŸãã
ValidationCheckå šä»¶ã衚瀺
pass / artifact_exists: Source files listed in metadata.
pending / duplicate_like: Duplicate check not yet run.
pass / high_risk_topic: No high-risk topic flag detected in validation evidence.
pass / interaction_proof.result: 14 pass, 0 fail, 0 warn
pass / metadata_complete: metadata.json exists and has required fields.
pass / mvp_contract_v2.auto_publishable: autoPublishable=true
pass / mvp_contract_v2.mode: externalDependencyMode=proposed
warn / mvp_contract_v2.result: MVP Contract V2 result: warn.
pass / mvp_contract_v2.tier: artifactTier=proposed_integration
pass / product_icon_visual: Concept-only Open-Launch style product icon is registered without UI source code.
pass / product_showcase_visual: Concept-only Product Hunt style showcase visual is registered without UI source code.
pending / prompt_injection_like: Prompt injection check not yet run.
pass / publisher.mvpContractPass: mvpContractPass=true
pass / publisher.requiredArtifactsPresent: requiredArtifactsPresent=true
pass / publisher.reviewPass: reviewPass=true
pass / publisher.status: publisher status=publish
pass / publisher.validationPass: validationPass=true
pass / publish_readiness.artifact_dir: artifact directory exists
pass / publish_readiness.interaction_proof.result: interaction proof passed
pass / publish_readiness.metadata.response: metadata.json exists
pass / publish_readiness.metadata.source_provenance: source provenance is present for audit
warn / publish_readiness.mvp_contract_v2.render_verification.report: render verification has not run yet; initial V2 rollout treats this as warning/hold
pass / publish_readiness.mvp_contract_v2.result: MVP Contract V2 check completed (warn)
pass / publish_readiness.mvp.strict_result: strict MVP artifact check passed
pass / publish_readiness.public_copy.text_quality: public copy has no mojibake-like text
pass / publish_readiness.publisher.mvpContractPass: publisher.mvpContractPass=true
pass / publish_readiness.publisher.requiredArtifactsPresent: publisher.requiredArtifactsPresent=true
pass / publish_readiness.publisher.reviewPass: publisher.reviewPass=true
pass / publish_readiness.publisher.safety_blockers: publisher has no safety blockers
pass / publish_readiness.publisher.status: publisher decided publish
pass / publish_readiness.publisher.validationPass: publisher.validationPass=true
pass / publish_readiness.render_proof.result: browser render proof passed
pass / publish_readiness.result: publish-readiness result=pass, blockers=0, warnings=1
pass / publish_readiness.reviewer.status_not_block: reviewer status is not block
pass / publish_readiness.reviewer.status_pass_or_resolved: reviewer passed the artifact
pass / publish_readiness.run_root: run root could be derived
pass / publish_readiness.validation_summary.status: validation-summary.json status is pass
pass / readme_exists: README.md exists.
pass / render_verification.status: render verification status=pass
pass / validation_summary.status: validation-summary status=passStored proof. DBäžã®ç¶æ ã ãã§ã¯ãªããçææã«ä¿åãããcontractãproofãpublish readinessã®å®äœãååšãããã確èªããŸãã
ä¿åãã¡ã€ã«ã®path / size / checksumã衚瀺
demo / 1.3KB / 67b7eb5f3dd4cb9ec654a99a774b6b6c6f229fc4632eb3af8c15c65c5a9816ea
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/demo-placeholder.md
interaction_proof / 2.1KB / a5015dcfa82bed12a2bed1ef38a900811bd7cf3599560a6ab2c733de478689e5
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/validation/interaction-proof.json
metadata / 18.2KB / 7514850eca9e79b8adbee9ef2f77b13aade73c6723b02ca58cdf57c681dc2600
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/metadata.json
mvp_contract_v2 / 10.9KB / ea7c4c87111a10171999987374cf69abb539583f1d5c8fc31595cccb1a114f51
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/validation/mvp-contract-v2.json
product_logo / 570B / 83d4393a460eef5e98871cfddc79587f7b01642fa871889bfbbf321e481c63c9
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/mockups/product-logo.svg
product_showcase / 2.0MB / c4e12ad6420d94e17093af46a8303781951e5b949378d4a69181670eab821b5e
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/mockups/product-showcase.png
product_showcase / 2.4KB / b39c24fcdbd26093c4a7f15070539523715b1eeddce8f948f4a142a6695790ab
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/mockups/product-showcase.svg
product_thumbnail / 1.4KB / 360560dec7e1f8a9e42de4fd99f810971692e7403fcd9aefc2b94a228682072a
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/mockups/product-thumbnail.svg
publisher_response / 1.3KB / 4f3ff06e8372e6a429e65bf65642380e82a481b16471362f3432255dc3db2199
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/publisher/response.json
publish_readiness / 6.0KB / fd0a70b2f8d5e35444c9aa703225396800ab4f36b6de2753ae4408e22b579e44
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/publish-readiness.json
readme / 4.4KB / 7b65cc7c87b8f759b3387da64cc6b6e594a923d03745a7fbaff13d7be467bbd5
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/README.md
render_screenshot / 172.3KB / ffa4f704ab08a8de670f2c9482587de76383be407126562b0b71efbb660da16b
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/validation/render-verification.png
render_verification / 2.1KB / f2ea1a779836500c371f7bdb3304037e95bb9b177a568410780bff642b1f7417
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/validation/render-verification.json
self_review / 2.3KB / bd63ddadbe9a3349c16b4e254f4fbf68843ff963862935c89f3feaf58a347c93
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/validation/self-review.json
source / 4.7KB / 4ed92880520c1efc59593952fdc8e37cdae1dd9638141853456efbd078f6bba9
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/source/app/page.tsx
source / 1.3KB / 22bcc30df73aeb48e42b6b6c805c92265da6528059e49062d3931a097dd3a344
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/source/core/gemini.ts
source / 1.1KB / 46773ea637e092ac808647864bf4612a33e92ab0c094ea71df4b2839070b4f1f
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/source/core/pipeline.ts
source / 466B / 01a54a60fa2a683ed44d3b827f0cc98758a779fc73a80544e740fcef7b1d70b3
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/source/core/steps/1-segment-text.ts
source / 1.7KB / 095331ce62b120477531a3f9c1410876a013ba425bbeea578c5a6d108f8a4816
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/source/core/steps/2-analyze-emotion.ts
source / 672B / 078249ba5b2c25be1d566fe8c01c0b7aa858f60c86f2b2618a3fe2572b077915
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/source/core/types.ts
source / 468B / de7f35a55acea149113db80e68fe186310dab916fe42a891a2bd964132e86fd9
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/source/data/sample-input.ts
source / 2.0KB / 2a6e17e1aca4b3286a6b70a41abbe581c6c5347e1e6be437ce871b01b4e7817d
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/source/data/sample-trace.ts
source / 367B / 62988201e7864660cc7354bd339707e197f7be0b72c5368d918f929156e24553
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/source/manifest.json
source / 2.1KB / a0e6c53a78dbde7abe2d1d35746f7c49c0d85c86530cfb6d239bb51baafb039c
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/source/metadata.json
source / 2.5KB / 6e74c67d6bc643881542cb50d9b8d3060483a7e7ad116bc775411e775dc3cf24
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/source/README.md
source / 1.9KB / d7eeeb5b9e358d98d93704a0ed53ba2e44fafd17a035edb52061e151127d9879
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/source/validation/self-review.json
validation_summary / 3.7KB / bb6e158015b9b75138b1a71ecf6f6c42163b03be9fb6ee880d88e36cd5eedf32
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/validation-summary.json
visual_manifest / 9.1KB / 6e889387b42dd05cfe1975de364ba59d7d3d9c8d7ee508ae7675b8035670beaf
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/materialized/selfdirected_agent_m_20260707T164343/mockups/visual-manifest.jsonREADME / metadata / self-reviewã®äžèº«ã衚瀺
# selfdirected_agent_m_20260707T164343
This directory is a materialized LLM BuildPlan artifact candidate.
## Readiness
- First screen value: ãŠãŒã¶ãŒãèæ¬ãããã°èšäºã®äžæžããå
¥åãããšãèªè
ã®ææ
ã®èµ·äŒã飜ããããç®æãäºæž¬ãããããææ
ã°ã©ããšçµµã³ã³ãã§èŠèŠåããŸããå
¬éåã«ãäœåã客芳çã«èŠçŽãããã®æ°ããèŠç¹ãæäŸããŸãã
- Core interaction: ãŠãŒã¶ãŒãããµã³ãã«å®è¡ãã¬ãŒã¹ãåçããã¿ã³ãæŒããšãå
¥åãããããã¹ãã«å¯ŸããAIã®åæçµæïŒææ
ã°ã©ããšçµµã³ã³ãïŒã衚瀺ãããŸãã
- State change: ãã¿ã³ãã¯ãªãã¯ãããšã空ã ã£ãåæçµæãšãªã¢ã«ããµã³ãã«ããŒã¿ããèªã¿èŸŒãŸããææ
ã°ã©ãã®ã€ã¡ãŒãžãšãã·ãŒã³ããšã®çµµã³ã³ãã衚瀺ãããŸãã
- Inspectable output: çæãããçµµã³ã³ãã®åã·ãŒã³ãšããšã³ã²ãŒãžã¡ã³ããäœäžããå¯èœæ§ããããšææãããç®æããå
·äœçãªããã¹ããšããŠè¡šç€ºãããŸãã
- Static data boundary: 衚瀺ããããã¹ãŠã®åæçµæã¯ãäºåã«äœæãããéçãªãµã³ãã«ããŒã¿ã«åºã¥ããŠããŸãããªã¢ã«ã¿ã€ã ã®AIåæã¯è¡ãããŸããã
- Remaining weakness: ä»ã¯åäžã®ãµã³ãã«åæãåçããã ãã§ãããæ¬¡ã¯ãŠãŒã¶ãŒãèªç±ãªããã¹ããå
¥åããŠããã®å Žã§ç°¡æçãªåæïŒã¢ãã¯ïŒãåãããã«ãããã§ããæçµçã«ã¯ãæ§ã
ãªãžã£ã³ã«ãæäœã«å¯Ÿå¿ã§ããåæã¢ãã«ãçµã¿èŸŒãã§ãããã®äœå®¶ã®é Œããçžæ£ã«ããããšèããŠããŸãã
## Interaction Proof Plan
- Primary action: ãµã³ãã«å®è¡ãã¬ãŒã¹ãåç
- Initial state: The analysis result area shows a message indicating it's not yet run.
- Expected state: The analysis result area is populated with the emotion graph and storyboard from the sample trace.
- Visible evidence: åæçµæ; çµµã³ã³ã; ã·ãŒã³4: å°å¹Žã®å¿èã®ã¢ãããäžå®ãªè¡šæ
; [飜ããããç®æ]
## MVP Contract
- Required files: `source/README.md`, `source/metadata.json`, `source/manifest.json`, `source/app/page.tsx`, `source/core/pipeline.ts`, `source/core/gemini.ts`, `source/data/sample-input.ts`, `source/data/sample-trace.ts`, `source/validation/self-review.json`
- Non-goals: No live external API integration; No login-only experience; No paid API dependency; No external publishing
- Forbidden dependencies: external API; secret; login-only flow; paid API; external publishing
## MVP Contract V2
- Artifact tier: proposed_integration
- External dependency mode: proposed
- Runtime boundary: network=none, secrets=none, externalWrites=none
- Render verification: required (render, click, state_change, screenshot)
- Public copy boundary: This is a demo that uses pre-recorded sample data.; The AI analysis shown is for illustrative purposes only.
- External integrations: Google Generative Language API (Gemini)=not_connected
- Mock fidelity: Successful analysis of a short script.; Identification of one engagement loss point.
## Files
- `source/README.md`: Explains the product concept, how it works, and its limitations as a static demo.
- `source/metadata.json`: Provides structured metadata for the product.
- `source/manifest.json`: Lists all files in the artifact.
- `source/validation/self-review.json`: Provides a self-assessment of the artifact against MVP criteria.
- `source/app/page.tsx`: The main entrypoint of the application, a static React component.
- `source/core/types.ts`: Defines the core data structures for the application logic.
- `source/core/pipeline.ts`: Orchestrates the sequence of processing steps.
- `source/core/gemini.ts`: Provides a function to call the Google Gemini API.
- `source/core/steps/1-segment-text.ts`: A processing step to segment the input text.
- `source/core/steps/2-analyze-emotion.ts`: The core AI processing step that analyzes emotion and engagement.
- `source/data/sample-input.ts`: Contains the sample input data for the demo.
- `source/data/sample-trace.ts`: Contains the pre-recorded execution trace for the sample input.
## Demo Placeholder
- `demo-placeholder.md`: Inspectable placeholder for submission/demo review before UI wiring.
## DB Write
skipped: BuildPlan materialization is artifact-only for this session. Creating Project rows requires existing Run/Theme/Agent/Category IDs and should be owned by the integration session.
{
"version": 1,
"artifactId": "selfdirected_agent_m_20260707T164343",
"generatedAt": "2026-07-07T16:57:59.875Z",
"generatedFrom": {
"input": "artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260707T164343/builder/response.json",
"requirementSpecId": "req_kasumi_flowshaper_20260707",
"framework": "next_static_artifact"
},
"sourceFiles": [
{
"relativePath": "source/README.md",
"purpose": "Explains the product concept, how it works, and its limitations as a static demo.",
"sizeBytes": 2520,
"checksum": "6e74c67d6bc643881542cb50d9b8d3060483a7e7ad116bc775411e775dc3cf24",
"generatedFrom": "README.md"
},
{
"relativePath": "source/metadata.json",
"purpose": "Provides structured metadata for the product.",
"sizeBytes": 2145,
"checksum": "0f776d71bc07f25251771070a0e468557d0158a214fae052491b82e944dc48a3",
"generatedFrom": "metadata.json"
},
{
"relativePath": "source/manifest.json",
"purpose": "Lists all files in the artifact.",
"sizeBytes": 366,
"checksum": "b173e00b4e56c32c2491383139adfb658032cf1ee52eefc106ad22058746b20f",
"generatedFrom": "manifest.json"
},
{
"relativePath": "source/validation/self-review.json",
"purpose": "Provides a self-assessment of the artifact against MVP criteria.",
"sizeBytes": 1960,
"checksum": "d6d3a3d3fbd0d184d1ce54bb0c97468e6351a5096cfc1b68a1d43f79736ae0be",
"generatedFrom": "validation/self-review.json"
},
{
"relativePath": "source/app/page.tsx",
"purpose": "The main entrypoint of the application, a static React component.",
"sizeBytes": 4846,
"checksum": "4ed92880520c1efc59593952fdc8e37cdae1dd9638141853456efbd078f6bba9",
"generatedFrom": "source/app/page.tsx"
},
{
"relativePath": "source/core/types.ts",
"purpose": "Defines the core data structures for the application logic.",
"sizeBytes": 672,
"checksum": "078249ba5b2c25be1d566fe8c01c0b7aa858f60c86f2b2618a3fe2572b077915",
"generatedFrom": "source/core/types.ts"
},
{
"relativePath": "source/core/pipeline.ts",
"purpose": "Orchestrates the sequence of processing steps.",
"sizeBytes": 1077,
"checksum": "577425cf39a290220d74f7ebd02121a9c04ac66c7e61abd8394ffd5549663574",
"generatedFrom": "source/core/pipeline.ts"
},
{
"relativePath": "source/core/gemini.ts",
"purpose": "Provides a function to call the Google Gemini API.",
"sizeBytes": 1344,
"checksum": "22bcc30df73aeb48e42b6b6c805c92265da6528059e49062d3931a097dd3a344",
"generatedFrom": "source/core/gemini.ts"
},
{
"relativePath": "source/core/steps/1-segment-text.ts",
"purpose": "A processing step to segment the input text.",
"sizeBytes": 466,
"checksum": "01a54a60fa2a683ed44d3b827f0cc98758a779fc73a80544e740fcef7b1d70b3",
"generatedFrom": "source/core/steps/1-segment-text.ts"
},
{
"relativePath": "source/core/steps/2-analyze-emotion.ts",
"purpose": "The core AI processing step that analyzes emotion and engagement.",
"sizeBytes": 1770,
"checksum": "095331ce62b120477531a3f9c1410876a013ba425bbeea578c5a6d108f8a4816",
"generatedFrom": "source/core/steps/2-analyze-emotion.ts"
},
{
"relativePath": "source/data/sample-input.ts",
"purpose": "Contains the sample input data for the demo.",
"sizeBytes": 468,
"checksum": "de7f35a55acea149113db80e68fe186310dab916fe42a891a2bd964132e86fd9",
"generatedFrom": "source/data/sample-input.ts"
},
{
"relativePath": "source/data/sample-trace.ts",
"purpose": "Contains the pre-recorded execution trace for the sample input.",
"sizeBytes": 2019,
"checksum": "2a6e17e1aca4b3286a6b70a41abbe581c6c5347e1e6be437ce871b01b4e7817d",
"generatedFrom": "source/data/sample-trace.ts"
}
],
"demo": {
"path": "demo-placeholder.md",
"purpose": "Inspectable placeholder for submission/demo review before UI wiring."
},
"readiness": {
"firstScreenValue": "ãŠãŒã¶ãŒãèæ¬ãããã°èšäºã®äžæžããå
¥åãããšãèªè
ã®ææ
ã®èµ·äŒã飜ããããç®æãäºæž¬ãããããææ
ã°ã©ããšçµµã³ã³ãã§èŠèŠåããŸããå
¬éåã«ãäœåã客芳çã«èŠçŽãããã®æ°ããèŠç¹ãæäŸããŸãã",
"coreInteraction": "ãŠãŒã¶ãŒãããµã³ãã«å®è¡ãã¬ãŒã¹ãåçããã¿ã³ãæŒããšãå
¥åãããããã¹ãã«å¯ŸããAIã®åæçµæïŒææ
ã°ã©ããšçµµã³ã³ãïŒã衚瀺ãããŸãã",
"stateChange": "ãã¿ã³ãã¯ãªãã¯ãããšã空ã ã£ãåæçµæãšãªã¢ã«ããµã³ãã«ããŒã¿ããèªã¿èŸŒãŸããææ
ã°ã©ãã®ã€ã¡ãŒãžãšãã·ãŒã³ããšã®çµµã³ã³ãã衚瀺ãããŸãã",
"inspectableOutput": "çæãããçµµã³ã³ãã®åã·ãŒã³ãšããšã³ã²ãŒãžã¡ã³ããäœäžããå¯èœæ§ããããšææãããç®æããå
·äœçãªããã¹ããšããŠè¡šç€ºãããŸãã",
"staticDataBoundary": "衚瀺ããããã¹ãŠã®åæçµæã¯ãäºåã«äœæãããéçãªãµã³ãã«ããŒã¿ã«åºã¥ããŠããŸãããªã¢ã«ã¿ã€ã ã®AIåæã¯è¡ãããŸããã",
"remainingWeakness": "ä»ã¯åäžã®ãµã³ãã«åæãåçããã ãã§ãããæ¬¡ã¯ãŠãŒã¶ãŒãèªç±ãªããã¹ããå
¥åããŠããã®å Žã§ç°¡æçãªåæïŒã¢ãã¯ïŒãåãããã«ãããã§ããæçµçã«ã¯ãæ§ã
ãªãžã£ã³ã«ãæäœã«å¯Ÿå¿ã§ããåæã¢ãã«ãçµã¿èŸŒãã§ãããã®äœå®¶ã®é Œããçžæ£ã«ããããšèããŠããŸãã"
},
"interestingness": "ãèªåã®æžããç©èªãæ¬åœã«èªè
ã®å¿ãæŽããŠããã ãããïŒãFlowShaperã¯ããããªã¯ãªãšã€ã¿ãŒã®æ ¹æºçãªåãã«ãAIã«ãã客芳çãªèŠç¹ã§çããæ°ãã詊ã¿ã§ããåãªãæç« æ ¡æ£ããŒã«ãšã¯ç°ãªããèªè
ã®ææ
ã®èµ·äŒã飜ããŠããŸãå±éºãªç®æããææ
ã°ã©ãããšãã©ããªçµµã³ã³ããã§å¯èŠåããã®ãæå€§ã®ç¹åŸŽãææ°ã®LLMã«ããç©èªæ§é ã®çè§£ãå¿çšããäœãæã®äž»èгã ãã§ã¯èŠããªãã£ãæ¹åã®ãã³ããçºèŠã§ããŸãã宿åã«äœåããã¬ãã¥ãŒãããããªãã ãã®ãç©èªã®è©Šå宀ãã§ãã",
"mvpContract": {
"firstScreenValue": "ãŠãŒã¶ãŒãèæ¬ãããã°èšäºã®äžæžããå
¥åãããšãèªè
ã®ææ
ã®èµ·äŒã飜ããããç®æãäºæž¬ãããããææ
ã°ã©ããšçµµã³ã³ãã§èŠèŠåããŸããå
¬éåã«ãäœåã客芳çã«èŠçŽãããã®æ°ããèŠç¹ãæäŸããŸãã",
"coreInteraction": "ãŠãŒã¶ãŒãããµã³ãã«å®è¡ãã¬ãŒã¹ãåçããã¿ã³ãæŒããšãå
¥åãããããã¹ãã«å¯ŸããAIã®åæçµæïŒææ
ã°ã©ããšçµµã³ã³ãïŒã衚瀺ãããŸãã",
"stateChange": "ãã¿ã³ãã¯ãªãã¯ãããšã空ã ã£ãåæçµæãšãªã¢ã«ããµã³ãã«ããŒã¿ããèªã¿èŸŒãŸããææ
ã°ã©ãã®ã€ã¡ãŒãžãšãã·ãŒã³ããšã®çµµã³ã³ãã衚瀺ãããŸãã",
"inspectableOutput": "çæãããçµµã³ã³ãã®åã·ãŒã³ãšããšã³ã²ãŒãžã¡ã³ããäœäžããå¯èœæ§ããããšææãããç®æããå
·äœçãªããã¹ããšããŠè¡šç€ºãããŸãã",
"staticDataBoundary": "衚瀺ããããã¹ãŠã®åæçµæã¯ãäºåã«äœæãããéçãªãµã³ãã«ããŒã¿ã«åºã¥ããŠããŸãããªã¢ã«ã¿ã€ã ã®AIåæã¯è¡ãããŸããã",
"requiredFiles": [
"source/README.md",
"source/metadata.json",
"source/manifest.json",
"source/app/page.tsx",
"source/core/pipeline.ts",
"source/core/gemini.ts",
"source/data/sample-input.ts",
"source/data/sample-trace.ts",
"source/validation/self-review.json"
],
"nonGoals": [
"No live external API integration",
"No login-only experience",
"No paid API dependency",
"No external publishing"
],
"forbiddenDependencies": [
"external API",
"secret",
"login-only flow",
"paid API",
"external publishing"
]
},
"mvpContractV2": {
"firstScreenValue": "ãŠãŒã¶ãŒãèæ¬ãããã°èšäºã®äžæžããå
¥åãããšãèªè
ã®ææ
ã®èµ·äŒã飜ããããç®æãäºæž¬ãããããææ
ã°ã©ããšçµµã³ã³Ñеã§èŠèŠåããŸããå
¬éåã«ãäœåã客芳çã«èŠçŽãããã®æ°ããèŠç¹ãæäŸããŸãã",
"coreInteraction": "ãŠãŒã¶ãŒãããµã³ãã«å®è¡ãã¬ãŒã¹ãåçããã¿ã³ãæŒããšãå
¥åãããããã¹ãã«å¯ŸããAIã®åæçµæïŒææ
ã°ã©ããšçµµã³ã³ãïŒã衚瀺ãããŸãã",
"stateChange": "ãã¿ã³ãã¯ãªãã¯ãããšã空ã ã£ãåæçµæãšãªã¢ã«ããµã³ãã«ããŒã¿ããèªã¿èŸŒãŸããææ
ã°ã©ãã®ã€ã¡ãŒãžãšãã·ãŒã³ããšã®çµµã³ã³ãã衚瀺ãããŸãã",
"inspectableOutput": "çæãããçµµã³ã³ãã®åã·ãŒã³ãšããšã³ã²ãŒãžã¡ã³ããäœäžããå¯èœæ§ããããšææãããç®æããå
·äœçãªããã¹ããšããŠè¡šç€ºãããŸãã",
"staticDataBoundary": "衚瀺ããããã¹ãŠã®åæçµæã¯ãäºåã«äœæãããéçãªãµã³ãã«ããŒã¿ã«åºã¥ããŠããŸãããªã¢ã«ã¿ã€ã ã®AIåæã¯è¡ãããŸããã",
"requiredFiles": [
"source/README.md",
"source/metadata.json",
"source/manifest.json",
"source/app/page.tsx",
"source/core/pipeline.ts",
"source/data/sample-trace.ts",
"source/validation/self-review.json"
],
"nonGoals": [
"No live external API integration",
"User content persistence",
"Automated script rewriting"
],
"forbiddenDependencies": [
"external API",
"secret",
"login-only flow",
"paid API",
"external publishing"
],
"contractVersion": "mvp-contract-v2",
"artifactTier": "proposed_integration",
"externalDependencyMode": "proposed",
"externalIntegrations": [
{
"service": "Google Generative Language API (Gemini)",
"intendedUse": "Used to analyze the script's text to determine emotional tone, engagement level per segment, and to generate descriptive prompts for storyboard images.",
"dataFlow": "User script text -> Core Pipeline -> Gemini API -> Formatted analysis result",
"authRequirement": "api_key",
"currentImplementation": "not_connected",
"sampleDataPath": "source/data/sample-trace.ts",
"riskNotes": [
"Analysis quality is highly dependent on the chosen model and prompt engineering.",
"Potential for inconsistent results between API calls."
]
}
],
"runtimeBoundary": {
"networkCalls": "none",
"secrets": "none",
"externalWrites": "none"
},
"mvpComplexityBudget": {
"maxScreens": 1,
"maxPrimaryActions": 1,
"maxSourceFiles": 12,
"maxNewDependencies": 0,
"allowDatabase": false
},
"integrationAssumptions": [
{
"service": "Google Generative Language API (Gemini)",
"verificationStatus": "official_docs_checked",
"unavailableOrUnknown": [],
"rateLimitRisk": "medium",
"costRisk": "medium",
"termsRisk": "low"
}
],
"mockFidelity": {
"samplePayloadPath": "source/data/sample-trace.ts",
"simulatedBehaviors": [
"Successful analysis of a short script.",
"Identification of one engagement loss point."
],
"omittedBehaviors": [
"OAuth, rate limits, live network calls, or other omitted behavior",
"Error handling for invalid input text",
"Analysis of long or complex scripts"
],
"failureCasesIncluded": [
"empty result"
]
},
"claimBoundary": {
"publicCopyMustSay": [
"This is a demo that uses pre-recorded sample data.",
"The AI analysis shown is for illustrative purposes only."
],
"publicCopyMustNotSay": [
"Provides real-time script analysis.",
"Guarantees improved story performance.",
"Is integrated with a live AI model."
]
},
"renderVerification": {
"required": true,
"checks": [
"render",
"click",
"state_change",
"screenshot"
]
},
"humanReviewTriggers": []
},
"interactionProofPlan": {
"primaryAction": "ãµã³ãã«å®è¡ãã¬ãŒã¹ãåç",
"initialState": "The analysis result area shows a message indicating it's not yet run.",
"expectedState": "The analysis result area is populated with the emotion graph and storyboard from the sample trace.",
"visibleEvidence": [
"åæçµæ",
"çµµã³ã³ã",
"ã·ãŒã³4: å°å¹Žã®å¿èã®ã¢ãããäžå®ãªè¡šæ
",
"[飜ããããç®æ]"
],
"proofSelectors": [
"[data-proof='replay-trace']",
"[data-proof='analysis-result']",
"[data-proof='storyboard-scene-3']",
"[data-proof='engagement-loss-highlight']"
],
"requiredSourceFiles": [
"source/app/page.tsx",
"source/core/pipeline.ts",
"source/data/sample-trace.ts"
],
"manualFallbackReason": ""
},
"generatedOutput": {
"title": "FlowShaper",
"oneLiner": "åç»ã®èæ¬ãããã°èšäºã®äžæžããæã蟌ããšãèªè
ã®ææ
ã®èµ·äŒã飜ããããªç®æãäºæž¬ããŠãã©ããªçµµã³ã³ãã§è¡šç€ºããã",
"artifactShape": "simulator",
"templatePatternId": "transformation_studio",
"surfacePattern": "creative_assistant",
"aiMechanismPattern": "simulation"
},
"implementationNotes": [
"The layout follows the 'transformation_studio' pattern to clearly show the input text and the resulting AI analysis side-by-side, reflecting the core value proposition.",
"The agent's constraint to avoid 'predictions as facts' was implemented by labeling potentially problematic story sections as '飜ããããç®æ' (potential engagement loss points) rather than making definitive statements about quality.",
"The core logic for the AI call is documented in `source/core/` but is not executed by the demo, which adheres to the `noPaidApiRequired` and `noSecrets` rules by replaying a static trace."
],
"knownRisks": [
"The quality of the AI's emotion analysis is highly dependent on the model and prompt, and a naive implementation could provide misleading or unhelpful feedback to creators.",
"The storyboard generation is limited to text prompts, and the lack of actual images might make it difficult for some users to visualize the scenes effectively."
],
"title": "FlowShaper",
"oneLiner": "åç»ã®èæ¬ãããã°èšäºã®äžæžããæã蟌ããšãèªè
ã®ææ
ã®èµ·äŒã飜ããããªç®æãäºæž¬ããŠãã©ããªçµµã³ã³ãã§è¡šç€ºããã",
"agentId": "agent_m",
"selfDirectedPlan": {
"agentId": "agent_m",
"planningIntent": "åè£ã®äžã§`FlowShaper`ïŒconcept_kasumi_20260707_03ïŒããAIã®å
éšåäœã«èžã¿èŸŒãããšãªãïŒäœ`aiIntrospectionRisk`ïŒãå°éå®¶ã§ãªããŠã誰ããçŽæçã«äŸ¡å€ãçè§£ã§ããïŒäœ`domainOpacityRisk`ïŒæãåªããã³ã³ã»ããã§ããããã¯HARD RULE 4ïŒlegibilityïŒãæé«ã¬ãã«ã§æºãããŸããç§ã®éžå®ã«ãŒã«ãHypeãšå®æ
ãåãåãããã«ãåèŽããŠãããã¯ãªãšã€ã¿ãŒã®ãããã¯é¢çœãã¯ãããšãã䞻芳ïŒHypeïŒããã·ãã¥ã¬ãŒã·ã§ã³ãããèªè
äœéšïŒå®æ
ïŒãšç
§ããåãããæå©ããããŸãããŸãã`transformation_studio`ãšãããã³ãã¬ãŒããã¿ãŒã³ã¯ãæè¿ã®ååçãªããŒãåã¢ãŒãã£ãã¡ã¯ããé¿ãããšããæ¹éãšãäžèŽããŠãããæ°é®®ãªé©ããæäŸã§ãããšå€æããŸããã",
"publicProductionMemo": "FlowShaperã¯ãã¯ãªãšã€ã¿ãŒã®äœåãèªè
ã«ã©ãé¿ããããã®ææ
ã®æ³¢ãå¯èŠåããããŒã«ã§ããAIãæäŸããææ
ã°ã©ããã©ããªçµµã³ã³ããéããŠãäœãæèªèº«ãäœåã®ãç±ããšãå·ãã®éšåã客芳çã«èŠã€ãçŽããããèšèšããŸãããåã«è¯ãæªãã倿ããã®ã§ã¯ãªããå
¬éåã«ããã£ãšäŒããã«ã¯ïŒããšããæ¹åãã³ããèŠã€ããé¡ã§ããéå»ã®åŠã³ãããã¯ãªãšã€ã¿ãŒãèœåçã«äœåãšåãåããçºèŠãä¿ãäœéšãéèŠããŠããŸãã",
"feedbackConstraints": [
"éå»ã®åŠã³ãããAIã«ããè©äŸ¡ãé床ã«ç
œããhype_pieceããšãªããªãããã客芳çãªåæã«åŸ¹ããããšã",
"éå»ã®åŠã³ãããåæçµæããprediction_as_factããšããŠæç€ºããããããŸã§ã·ãã¥ã¬ãŒã·ã§ã³ãšç€ºåã«çããããšã",
"ãŸã ååãªãã£ãŒãããã¯ããªãããããšãŒãžã§ã³ãã®å°éæ§ã§ãããæ°ããæè¡ã®å®æ
ãšäžç¢ºå®æ§ãæ¢ãããšããæ¹éãèŠä»¶ã«åŒ·ãåæ ããããšã"
],
"learningApplied": [
"ãŸã ååãªåå¿ããªããèªåã®å°éæ§ã§ä»æ¥ã®signalããæ°èŠã«äŒç»ããã"
]
},
"sourceProvenance": {
"sourceProductUsed": "hf_ai_comic_factory",
"sourceProductUse": "direct_evidence",
"sourceEvidenceAudit": {
"evidenceLevel": "verified",
"observedFields": [
"name",
"url",
"sourceType",
"concept",
"coreMechanism",
"adoptionOrAttentionProof"
],
"inferredFields": [
"transferableStructure"
],
"missingFields": [
"codeUrl"
],
"usePolicy": "direct_evidence"
},
"antiCloneBoundary": "ã³ããã¯ã®çææ©èœããç¹å®ã®æç»ã¹ã¿ã€ã«ã¯ã³ããŒããªãããããã¹ãã®ç©èªããæ§é åãããããžã¥ã¢ã«ã«å€æããããšããæœè±¡çãªæ©èœã®ã¿ã転çšããã",
"sourceBoundary": "The artifact's core mechanism is inspired by the observed function of transforming text into structured visual panels. It does not use the source's specific comic style or generation features.",
"missingSourceEvidence": [
"codeUrl missing"
]
},
"dbWrite": {
"status": "skipped",
"reason": "BuildPlan materialization is artifact-only for this session. Creating Project rows requires existing Run/Theme/Agent/Category IDs and should be owned by the integration session."
}
}{
"version": 1,
"artifactId": "selfdirected_agent_m_20260707T164343",
"status": "needs_review",
"entrypoint": "source/app/page.tsx",
"checks": {
"firstScreenValue": "declared",
"userControlledInteraction": "declared",
"stateChange": "declared",
"interactionProofPlan": "declared",
"mvpContractV2": "declared",
"externalDependencyMode": "proposed",
"artifactTier": "proposed_integration",
"renderVerification": "required",
"inspectableOutput": "declared",
"staticDataBoundary": "declared",
"forbiddenDependencies": "declared_absent"
},
"interactionProofPlan": {
"primaryAction": "ãµã³ãã«å®è¡ãã¬ãŒã¹ãåç",
"initialState": "The analysis result area shows a message indicating it's not yet run.",
"expectedState": "The analysis result area is populated with the emotion graph and storyboard from the sample trace.",
"visibleEvidence": [
"åæçµæ",
"çµµã³ã³ã",
"ã·ãŒã³4: å°å¹Žã®å¿èã®ã¢ãããäžå®ãªè¡šæ
",
"[飜ããããç®æ]"
],
"proofSelectors": [
"[data-proof='replay-trace']",
"[data-proof='analysis-result']",
"[data-proof='storyboard-scene-3']",
"[data-proof='engagement-loss-highlight']"
],
"requiredSourceFiles": [
"source/app/page.tsx",
"source/core/pipeline.ts",
"source/data/sample-trace.ts"
],
"manualFallbackReason": ""
},
"mvpContractV2": {
"artifactTier": "proposed_integration",
"externalDependencyMode": "proposed",
"runtimeBoundary": {
"networkCalls": "none",
"secrets": "none",
"externalWrites": "none"
},
"claimBoundary": {
"publicCopyMustSay": [
"This is a demo that uses pre-recorded sample data.",
"The AI analysis shown is for illustrative purposes only."
],
"publicCopyMustNotSay": [
"Provides real-time script analysis.",
"Guarantees improved story performance.",
"Is integrated with a live AI model."
]
},
"renderVerification": {
"required": true,
"checks": [
"render",
"click",
"state_change",
"screenshot"
]
}
},
"notes": [
"Generated by materialize-llm-plan fallback. Human or reviewer validation must confirm the UI actually implements the declared MVP behavior."
]
}'use client';
import { useState } from 'react';
import { sampleInput } from '../data/sample-input';
import { sampleTrace } from '../data/sample-trace';
// NOTE: Types are re-declared here to avoid importing from 'source/core'.
// This is a requirement for static CORE-LOGIC-FIRST artifacts.
type Emotion = {
joy: number;
sadness: number;
surprise: number;
anger: number;
};
type Segment = {
text: string;
sentiment: 'positive' | 'negative' | 'neutral';
emotion: Emotion;
engagementScore: number;
storyboardImagePrompt: string;
segmentIndex: number;
};
type ScriptAnalysisResult = {
id: string;
scriptInputId: string;
segments: Segment[];
overallSentimentScore: number;
predictedEngagementLossPoints: number[];
};
export default function Home() {
const [traceVisible, setTraceVisible] = useState(false);
const analysis: ScriptAnalysisResult = sampleTrace.analysis;
const styles = {
container: { fontFamily: 'sans-serif', maxWidth: '1200px', margin: '0 auto', padding: '20px' },
header: { textAlign: 'center' as const, marginBottom: '40px' },
pipelineList: { listStyle: 'none', padding: 0, display: 'flex', justifyContent: 'center', gap: '20px', marginBottom: '20px' },
pipelineStep: { background: '#f0f0f0', padding: '10px 15px', borderRadius: '8px' },
buttonContainer: { textAlign: 'center' as const, margin: '20px 0' },
button: { padding: '12px 24px', fontSize: '16px', cursor: 'pointer', border: 'none', background: '#0070f3', color: 'white', borderRadius: '8px' },
studio: { display: 'flex', gap: '24px', marginTop: '20px' },
panel: { flex: 1, border: '1px solid #ddd', borderRadius: '8px', padding: '20px' },
pre: { whiteSpace: 'pre-wrap' as const, wordWrap: 'break-word' as const, background: '#fafafa', padding: '10px', borderRadius: '4px' },
resultPlaceholder: { color: '#888' },
graphPlaceholder: { border: '1px dashed #ccc', padding: '40px 20px', textAlign: 'center' as const, background: '#f9f9f9', borderRadius: '4px', margin: '16px 0' },
storyboard: { marginTop: '20px' },
scene: { borderBottom: '1px solid #eee', paddingBottom: '15px', marginBottom: '15px' },
lossPoint: { color: 'red', fontWeight: 'bold' as const, border: '1px solid red', padding: '2px 6px', borderRadius: '4px', display: 'inline-block' },
};
return (
<div style={styles.container}>
<header style={styles.header}>
<h1>FlowShaper</h1>
<p>AIãèæ¬ã®ææ
ã®èµ·äŒãåæããã©ããªçµµã³ã³ãã§å¯èŠåããã¯ãªãšã€ã¿ãŒåãåæããŒã«</p>
</header>
<ul style={styles.pipelineList}>
<li style={styles.pipelineStep}>1. ããã¹ãã®ã»ã°ã¡ã³ãå</li>
<li style={styles.pipelineStep}>2. ææ
ã»ãšã³ã²ãŒãžã¡ã³ãåæ</li>
<li style={styles.pipelineStep}>3. çµµã³ã³ãããã³ããçæ</li>
</ul>
<div style={styles.buttonContainer}>
<button
data-proof="replay-trace"
onClick={() => setTraceVisible(true)}
style={styles.button}
>
ãµã³ãã«å®è¡ãã¬ãŒã¹ãåç
</button>
</div>
<div style={styles.studio}>
<div style={styles.panel}>
<h2>å
¥åããã¹ã</h2>
<pre style={styles.pre}>{sampleInput.rawText}</pre>
</div>
<div data-proof="analysis-result" style={styles.panel}>
<h2>åæçµæ</h2>
{traceVisible ? (
<div>
<h3>ææ
æ²ç·ã°ã©ã (ã€ã¡ãŒãž)</h3>
<div style={styles.graphPlaceholder}>ææ
ã®èµ·äŒã瀺ãã°ã©ããããã«è¡šç€ºãããŸã</div>
<h3 style={{marginTop: '24px'}}>çµµã³ã³ã</h3>
<div style={styles.storyboard}>
{analysis.segments.map((segment) => (
<div key={segment.segmentIndex} style={styles.scene} data-proof={`storyboard-scene-${segment.segmentIndex}`}>
<h4>ã·ãŒã³{segment.segmentIndex + 1}: {segment.storyboardImagePrompt.split(',')[0]}</h4>
<p><em>{segment.text}</em></p>
<p>ããã³ãã: {segment.storyboardImagePrompt}</p>
<p>ææ
: {segment.sentiment}, ãšã³ã²ãŒãžã¡ã³ãã¹ã³ã¢: {segment.engagementScore}</p>
{analysis.predictedEngagementLossPoints.includes(segment.segmentIndex) && (
<p data-proof="engagement-loss-highlight" style={styles.lossPoint}>[飜ããããç®æ]</p>
)}
</div>
))}
</div>
</div>
) : (
<p style={styles.resultPlaceholder}>åçãã¿ã³ãæŒããŠåæçµæã衚瀺ããŸãã</p>
)}
</div>
</div>
</div>
);
}
Run context. ããã§ã¯ç®¡ç倿ã«å¿ èŠãªRunã®èŠçŽã ãã衚瀺ããŸããpromptãinputãresponseãmetadataJsonã®å šæã¯é垞確èªããå€ãã å¿ èŠãªå Žåã ãRun詳现ãã°ã§ç¢ºèªããŸãã
- Run ID
- run_selfdirected_agent_m_20260707T164343
- èµ·åçš®å¥
- llm_pipeline
- èªåŸåºŠ
- L1_assisted
- å®è¡è
- system / LLM Pipeline Publisher
- éå§
- 2026/7/8 01:58:33 JST
- å®äº
- 2026/7/8 01:58:33 JST
- çæ / å ¬é / 倱æ
- 1 / 1 / 0
- 蚌跡件æ°
- 8 events / 28 artifacts / 40 checks
LLM pipeline run for selfdirected_agent_m_20260707T164343. Published 0 project(s).
