Internal Product Info
倪éœã®ãããã
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.2KB / 5df9bead95c8e1d8cb08f5416a3e58c3178c3f842976ac615056b97e61915484
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/demo-placeholder.md
interaction_proof / 2.1KB / d298c513edd4e33dc674b908ee919be1efe35afb8d10e385b4567c6eb7f4dca3
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/validation/interaction-proof.json
metadata / 19.9KB / 357f045f2bb96c12af7e0cdd1327272e32c06992d802cf2e75b08dc1f79d4d3e
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/metadata.json
mvp_contract_v2 / 12.4KB / 03fe5449bd192212bdf5e4775ca3fd4154f1bd48af2eedf89206f9a4f650c544
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/validation/mvp-contract-v2.json
product_logo / 584B / 26669e6d3b6add78b205664fe6961a6efce13a611cff09878fb8ec16023e3736
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/mockups/product-logo.svg
product_showcase / 1.9MB / 4c5e35ee1f22d565ef9fd52ea1e5664d3f19311123414120a3dd26db88861b8e
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/mockups/product-showcase.png
product_showcase / 2.5KB / 385a9db5ca30832ff5faa3d12dee98d34f2332fc985b14430855e84a74152687
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/mockups/product-showcase.svg
product_thumbnail / 1.4KB / bd866d83108dccd97d0e33e74e1b68674be03938da9b16919186d50e1ee36c23
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/mockups/product-thumbnail.svg
publisher_response / 971B / 00aa96770028da20ccf565e8957e3d687204c9aca319770bbe5ba28695487f7e
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/publisher/response.json
publish_readiness / 6.0KB / a6e94b0c3449de8440d501183dd896a7127481b5898a478aa45c707f898950b0
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/publish-readiness.json
readme / 5.1KB / 466fb035791d3995c2cca4fe5289b85976b741b94c2a6d7e9d6132f9a8bef88c
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/README.md
render_screenshot / 75.8KB / 46723030a569fd9c9973818c4631cfdc0755838320092b0aeeb7d8a2c4a3b279
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/validation/render-verification.png
render_verification / 2.1KB / 179e7bc2d671200f572596eef3807dc87f9241d9efb27276a62296261a4d2c86
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/validation/render-verification.json
self_review / 2.6KB / 5702da06951c73d0425c90d3d18c4588c03d5af3eddba3a6846809cedb585cf5
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/validation/self-review.json
source / 4.9KB / 4eb6e8643b4381fe8c89219b8dcb4853673516851220a4097464793dedc583de
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/source/app/page.tsx
source / 1.4KB / 18e6e876738f94f0c6447a67dd7c71b51d7ec2109d73c7c0b541fa0f02fdb03b
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/source/core/gemini.ts
source / 1.1KB / 9b91922b183c116a5c9b91dbc41a4b48e6ea0ab6e09339be1d5bee4f0f3658d8
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/source/core/pipeline.ts
source / 1.1KB / 74839290a5aa681f2faafa8fe5baa9c9a8a2a172f557af042cbd84dde9b50c27
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/source/core/steps/assembleStory.ts
source / 597B / 476125fef3ac1db905b5db4112b4b0f29ca0f9785e461aa7660e6794ba1f810a
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/source/core/steps/extractEventData.ts
source / 1.7KB / c09dd4f4af478d54a6191574e766ab2b51c8cb114820eb58417b3cca695d90c1
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/source/core/steps/generateStoryElements.ts
source / 278B / 05b2592dd51b7f4787dd0271f177faa835138a96e29a3550e74aba278b3ba4d5
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/source/core/types.ts
source / 321B / 4e5d87b6190d42e264358e5ccd446caeb88f2f9e5b94d340479b592dac6f9930
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/source/data/sample-input.ts
source / 2.1KB / 378e8cbff499e88b5bda2297cc9f7201c7fa7a6d71adf461d8655e0393e08e72
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/source/data/sample-trace.ts
source / 398B / 82ec5aec8f084b40406675915d8af3efbe85f876eadb880c90b1d8171c70a62c
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/source/manifest.json
source / 1.7KB / eabe97449e8762c9f4afb17b35b85353ff7a1d589c738adf9d6dd32a405b68c5
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/source/metadata.json
source / 2.8KB / d022d333a0a76af51ef5a36fabd18d06922a282e4dbfba7bef26b2d35451b461
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/source/README.md
source / 1014B / 7cb5cce6e0efa459a2becae4f56cfad88b113d920ba9422a754edac25697cc45
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/source/validation/self-review.json
validation_summary / 3.7KB / 5290bfe6e1b60b9186682e18f9fdcccc9ec7bdaa68c3f3d8de3ad0332a51f09e
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/validation-summary.json
visual_manifest / 8.3KB / 09e2c86fd227b492bb45d6041ba314b00416a6289c6c41eb4e70a4aed6446ccb
artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/materialized/selfdirected_agent_p_20260707T210641/mockups/visual-manifest.jsonREADME / metadata / self-reviewã®äžèº«ã衚瀺
# selfdirected_agent_p_20260707T210641
This directory is a materialized LLM BuildPlan artifact candidate.
## Readiness
- First screen value: é£è§£ãªå®å®å€©æ°ã®ç§åŠããŒã¿ããAIã«ãã£ãŠå¿æž©ãŸãçµµæ¬ã«å€æãããæ§åãäœéšã§ããŸãããç©èªãå§ããããã¿ã³ãæŒãã ãã§ãå°éç¥èããªããŠãå®å®ã®å£®å€§ãªç©èªã®æåã®1ããŒãžã楜ãããŸãã
- Core interaction: ãŠãŒã¶ãŒã¯ãç©èªãé²ããããã¿ã³ãã¯ãªãã¯ãã倪éœããå°çãžã®ãšãã«ã®ãŒã®æ
ã1ããŒãžãã€èªã¿é²ããŸãã
- State change: ãã¿ã³ãã¯ãªãã¯ãããã³ã«ã衚瀺ãšãªã¢ã®ç©èªã®å
容ïŒã¿ã€ãã«ããã¬ãŒã·ã§ã³ãã€ã©ã¹ãæåãç§åŠçæ ¹æ ïŒã次ã®ããŒãžãžãšæŽæ°ãããŸãã
- Inspectable output: æçµçã«è¡šç€ºããããå
šããŒãžããæ§æãããçãçµµæ¬ã®ç©èªã§ããåããŒãžã¯ãã¬ãŒã·ã§ã³ãšç§åŠçæ ¹æ ãã»ããã«ãªã£ãŠããŸãã
- Static data boundary: 衚瀺ãããç©èªã¯ãäºåã«AIãçæãããã®ãèšé²ããéçãªãµã³ãã«ããŒã¿ã§ãããªã¢ã«ã¿ã€ã ã®ããŒã¿åæ ãAPIåŒã³åºãã¯è¡ããŸããã
- Remaining weakness: çŸåšã¯åäžã®ç©èªããäœéšã§ããŸããããå°æ¥çã«ã¯æ§ã
ãªå€ªéœã€ãã³ãããåçã«ç©èªãçæãããŠãŒã¶ãŒãéžã¹ãããã«æ¡åŒµãããã§ããã€ã©ã¹ããå®éã«çæAIã§æç»ããããšã§ãããæ²¡å
¥æã®ããäœéšãç®æããŸãã
## Interaction Proof Plan
- Primary action: ç©èªãå§ãã
- Initial state: ç©èªã®åçåã§ãéå§ãä¿ãã¡ãã»ãŒãžã衚瀺ãããŠããç¶æ
ã
- Expected state: ç©èªã®1ããŒãžç®ãã¿ã€ãã«ããã¬ãŒã·ã§ã³ãã€ã©ã¹ãæåãšå
±ã«è¡šç€ºãããŠããç¶æ
ã
- Visible evidence: æ
ã®å§ãŸã; é ãæãç§ãã¡ã®å€§ããªæã倪éœããã£ãšç®èŠããŸããããããŠãå°ããªå
ã®ç²ãå°çãžéãæ
ãå§ããã®ã§ãã; ç©èªãé²ãã
## 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: 衚瀺ãããç©èªã¯ãAIãçæãããµã³ãã«ã§ãã; ãªã¢ã«ã¿ã€ã ã®ããŒã¿ãäºå ±ã§ã¯ãããŸããã; ç©èªã®è¡šçŸã¯ç§åŠçäºå®ãåºã«ããŠããŸãããæè²ç®çã§ç°¡ç¥åãããŠããŸãã
- External integrations: Google Gemini API=not_connected
- Mock fidelity: ãã€ãã©ã€ã³ã®åã¹ãããïŒããŒã¿æœåºãAIã«ããç©èªçæãæ§æïŒãæåããå Žåã®åºåãã·ãã¥ã¬ãŒãããŠããŸãã
## Files
- `source/README.md`: ãããã¯ãã®æŠèŠãäœ¿ãæ¹ãæè¡çãªã¢ãŒããã¯ãã£ããããŠãã¢ã®éçã«ã€ããŠèª¬æããŸãã
- `source/metadata.json`: ãããã¯ãã®å
¬éæ
å ±ãèšè¿°ãããã¡ã€ã«ã§ãã
- `source/manifest.json`: ãã«ãã«å«ãŸããå
šãã¡ã€ã«ã®äžèЧã§ãã
- `source/core/types.ts`: ãã€ãã©ã€ã³å
šäœã§äœ¿ãããããŒã¿åãå®çŸ©ããŸãã
- `source/core/gemini.ts`: Google Gemini APIãžã®åŒã³åºããã¿ãŒã³ãå®çŸ©ããŸãããã¢å®è¡æã«ã¯åŒã³åºãããŸããã
- `source/core/steps/extractEventData.ts`: ãã€ãã©ã€ã³ã®ã¹ããã1: ããŒã¿ãœãŒã¹ããã€ãã³ããæœåºããŸãã
- `source/core/steps/generateStoryElements.ts`: ãã€ãã©ã€ã³ã®ã¹ããã2: AIã䜿ã£ãŠç©èªã®èŠçŽ ãçæããŸãã
- `source/core/steps/assembleStory.ts`: ãã€ãã©ã€ã³ã®ã¹ããã3: ç©èªãæ§æããããŒãžåããŸãã
- `source/core/pipeline.ts`: ã³ã¢ããžãã¯ã®ãã€ãã©ã€ã³å
šäœããªãŒã±ã¹ãã¬ãŒã·ã§ã³ããŸãã
- `source/data/sample-input.ts`: ãã€ãã©ã€ã³ã®ãµã³ãã«å
¥åããŒã¿ã§ãã
- `source/data/sample-trace.ts`: UIãåçãããæåã§äœæããããã€ãã©ã€ã³ã®å®è¡ãã¬ãŒã¹ã§ãã
- `source/app/page.tsx`: ãã¢ã®ãšã³ããªãŒãã€ã³ãããµã³ãã«ããŒã¿ãåçããæå°éã®UIã§ãã
- `source/validation/self-review.json`: ãããã¯ããMVPã®åºæºãæºãããŠããããèªå·±è©äŸ¡ããŸãã
## 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_p_20260707T210641",
"generatedAt": "2026-07-07T21:21:14.428Z",
"generatedFrom": {
"input": "artifacts/llm-pipeline-runs/run_selfdirected_agent_p_20260707T210641/builder/response.json",
"requirementSpecId": "run_selfdirected_agent_p_20260707T210641_req",
"framework": "next_static_artifact"
},
"sourceFiles": [
{
"relativePath": "source/README.md",
"purpose": "ãããã¯ãã®æŠèŠãäœ¿ãæ¹ãæè¡çãªã¢ãŒããã¯ãã£ããããŠãã¢ã®éçã«ã€ããŠèª¬æããŸãã",
"sizeBytes": 2868,
"checksum": "d022d333a0a76af51ef5a36fabd18d06922a282e4dbfba7bef26b2d35451b461",
"generatedFrom": "README.md"
},
{
"relativePath": "source/metadata.json",
"purpose": "ãããã¯ãã®å
¬éæ
å ±ãèšè¿°ãããã¡ã€ã«ã§ãã",
"sizeBytes": 1789,
"checksum": "1ed033bbdee709c7894a870fe106548ddee3fadefad3f7441fd5d46c0a395ab4",
"generatedFrom": "metadata.json"
},
{
"relativePath": "source/manifest.json",
"purpose": "ãã«ãã«å«ãŸããå
šãã¡ã€ã«ã®äžèЧã§ãã",
"sizeBytes": 397,
"checksum": "d93ac618f77b69539d1ed3b126f3264c36a27fc701588ba16aa320b40a23eb9f",
"generatedFrom": "manifest.json"
},
{
"relativePath": "source/core/types.ts",
"purpose": "ãã€ãã©ã€ã³å
šäœã§äœ¿ãããããŒã¿åãå®çŸ©ããŸãã",
"sizeBytes": 278,
"checksum": "05b2592dd51b7f4787dd0271f177faa835138a96e29a3550e74aba278b3ba4d5",
"generatedFrom": "source/core/types.ts"
},
{
"relativePath": "source/core/gemini.ts",
"purpose": "Google Gemini APIãžã®åŒã³åºããã¿ãŒã³ãå®çŸ©ããŸãããã¢å®è¡æã«ã¯åŒã³åºãããŸããã",
"sizeBytes": 1387,
"checksum": "1a43ab2c45e465a1f1d6a6176e6aff9c221a71aa12ed932b20fbce60985e934c",
"generatedFrom": "source/core/gemini.ts"
},
{
"relativePath": "source/core/steps/extractEventData.ts",
"purpose": "ãã€ãã©ã€ã³ã®ã¹ããã1: ããŒã¿ãœãŒã¹ããã€ãã³ããæœåºããŸãã",
"sizeBytes": 597,
"checksum": "476125fef3ac1db905b5db4112b4b0f29ca0f9785e461aa7660e6794ba1f810a",
"generatedFrom": "source/core/steps/extractEventData.ts"
},
{
"relativePath": "source/core/steps/generateStoryElements.ts",
"purpose": "ãã€ãã©ã€ã³ã®ã¹ããã2: AIã䜿ã£ãŠç©èªã®èŠçŽ ãçæããŸãã",
"sizeBytes": 1728,
"checksum": "c09dd4f4af478d54a6191574e766ab2b51c8cb114820eb58417b3cca695d90c1",
"generatedFrom": "source/core/steps/generateStoryElements.ts"
},
{
"relativePath": "source/core/steps/assembleStory.ts",
"purpose": "ãã€ãã©ã€ã³ã®ã¹ããã3: ç©èªãæ§æããããŒãžåããŸãã",
"sizeBytes": 1140,
"checksum": "74839290a5aa681f2faafa8fe5baa9c9a8a2a172f557af042cbd84dde9b50c27",
"generatedFrom": "source/core/steps/assembleStory.ts"
},
{
"relativePath": "source/core/pipeline.ts",
"purpose": "ã³ã¢ããžãã¯ã®ãã€ãã©ã€ã³å
šäœããªãŒã±ã¹ãã¬ãŒã·ã§ã³ããŸãã",
"sizeBytes": 1152,
"checksum": "9b91922b183c116a5c9b91dbc41a4b48e6ea0ab6e09339be1d5bee4f0f3658d8",
"generatedFrom": "source/core/pipeline.ts"
},
{
"relativePath": "source/data/sample-input.ts",
"purpose": "ãã€ãã©ã€ã³ã®ãµã³ãã«å
¥åããŒã¿ã§ãã",
"sizeBytes": 320,
"checksum": "9fe28fbcaa4cb1198972816c6dc48df31c338d7a45c55752e951002e41377b50",
"generatedFrom": "source/data/sample-input.ts"
},
{
"relativePath": "source/data/sample-trace.ts",
"purpose": "UIãåçãããæåã§äœæããããã€ãã©ã€ã³ã®å®è¡ãã¬ãŒã¹ã§ãã",
"sizeBytes": 2134,
"checksum": "378e8cbff499e88b5bda2297cc9f7201c7fa7a6d71adf461d8655e0393e08e72",
"generatedFrom": "source/data/sample-trace.ts"
},
{
"relativePath": "source/app/page.tsx",
"purpose": "ãã¢ã®ãšã³ããªãŒãã€ã³ãããµã³ãã«ããŒã¿ãåçããæå°éã®UIã§ãã",
"sizeBytes": 5046,
"checksum": "4eb6e8643b4381fe8c89219b8dcb4853673516851220a4097464793dedc583de",
"generatedFrom": "source/app/page.tsx"
},
{
"relativePath": "source/validation/self-review.json",
"purpose": "ãããã¯ããMVPã®åºæºãæºãããŠããããèªå·±è©äŸ¡ããŸãã",
"sizeBytes": 1013,
"checksum": "1f5425eb323d07ea1f0c13eaacb0e7173b873e5a6652969851efcdf51a6f3b82",
"generatedFrom": "validation/self-review.json"
}
],
"demo": {
"path": "demo-placeholder.md",
"purpose": "Inspectable placeholder for submission/demo review before UI wiring."
},
"readiness": {
"firstScreenValue": "é£è§£ãªå®å®å€©æ°ã®ç§åŠããŒã¿ããAIã«ãã£ãŠå¿æž©ãŸãçµµæ¬ã«å€æãããæ§åãäœéšã§ããŸãããç©èªãå§ããããã¿ã³ãæŒãã ãã§ãå°éç¥èããªããŠãå®å®ã®å£®å€§ãªç©èªã®æåã®1ããŒãžã楜ãããŸãã",
"coreInteraction": "ãŠãŒã¶ãŒã¯ãç©èªãé²ããããã¿ã³ãã¯ãªãã¯ãã倪éœããå°çãžã®ãšãã«ã®ãŒã®æ
ã1ããŒãžãã€èªã¿é²ããŸãã",
"stateChange": "ãã¿ã³ãã¯ãªãã¯ãããã³ã«ã衚瀺ãšãªã¢ã®ç©èªã®å
容ïŒã¿ã€ãã«ããã¬ãŒã·ã§ã³ãã€ã©ã¹ãæåãç§åŠçæ ¹æ ïŒã次ã®ããŒãžãžãšæŽæ°ãããŸãã",
"inspectableOutput": "æçµçã«è¡šç€ºããããå
šããŒãžããæ§æãããçãçµµæ¬ã®ç©èªã§ããåããŒãžã¯ãã¬ãŒã·ã§ã³ãšç§åŠçæ ¹æ ãã»ããã«ãªã£ãŠããŸãã",
"staticDataBoundary": "衚瀺ãããç©èªã¯ãäºåã«AIãçæãããã®ãèšé²ããéçãªãµã³ãã«ããŒã¿ã§ãããªã¢ã«ã¿ã€ã ã®ããŒã¿åæ ãAPIåŒã³åºãã¯è¡ããŸããã",
"remainingWeakness": "çŸåšã¯åäžã®ç©èªããäœéšã§ããŸããããå°æ¥çã«ã¯æ§ã
ãªå€ªéœã€ãã³ãããåçã«ç©èªãçæãããŠãŒã¶ãŒãéžã¹ãããã«æ¡åŒµãããã§ããã€ã©ã¹ããå®éã«çæAIã§æç»ããããšã§ãããæ²¡å
¥æã®ããäœéšãç®æããŸãã"
},
"interestingness": "ãã®ãããã¯ãã¯ãNASAã®å®å®å€©æ°ãšããé£è§£ãªç§åŠããŒã¿ããAIãçšããŠå¿æž©ãŸãçµµæ¬ç©èªã«å€æããæ°ãã詊ã¿ã§ããåã«æ
å ±ãå¯èŠåããã®ã§ã¯ãªãã倪éœããå±ããšãã«ã®ãŒã®æ
ããã©ãã£ããªäœéšãšããŠæãåºãããšã§ãç§åŠãžã®ææ
çãªå
¥ãå£ãéããŸããæ¢åã®ããŒã«ãããŒã¿ã®æ£ç¢ºãªè¡šç€ºã«çãŸãäžãã倪éœã®ãããããã¯ããŒã¿ã«å¿ å®ã§ãããªããã芪åã®å¯Ÿè©±ãç¥ç奜å¥å¿ãè²ããç©èªããšããä»å 䟡å€ãæäŸããŸããããã¯ãLLMã«ããåµé çãªæç« çæèœåããæè²ãšãšã³ã¿ãŒãã€ã¡ã³ãã®é åã§æŽ»çšããæå
端ã®ãã¬ã³ããåæ ãããã®ã§ãã",
"mvpContract": {
"firstScreenValue": "é£è§£ãªå®å®å€©æ°ã®ç§åŠããŒã¿ããAIã«ãã£ãŠå¿æž©ãŸãçµµæ¬ã«å€æãããæ§åãäœéšã§ããŸãããç©èªãå§ããããã¿ã³ãæŒãã ãã§ãå°éç¥èããªããŠãå®å®ã®å£®å€§ãªç©èªã®æåã®1ããŒãžã楜ãããŸãã",
"coreInteraction": "ãŠãŒã¶ãŒã¯ãç©èªãé²ããããã¿ã³ãã¯ãªãã¯ãã倪éœããå°çãžã®ãšãã«ã®ãŒã®æ
ã1ããŒãžãã€èªã¿é²ããŸãã",
"stateChange": "ãã¿ã³ãã¯ãªãã¯ãããã³ã«ã衚瀺ãšãªã¢ã®ç©èªã®å
容ïŒã¿ã€ãã«ããã¬ãŒã·ã§ã³ãã€ã©ã¹ãæåãç§åŠçæ ¹æ ïŒã次ã®ããŒãžãžãšæŽæ°ãããŸãã",
"inspectableOutput": "æçµçã«è¡šç€ºããããå
šããŒãžããæ§æãããçãçµµæ¬ã®ç©èªã§ããåããŒãžã¯ãã¬ãŒã·ã§ã³ãšç§åŠçæ ¹æ ãã»ããã«ãªã£ãŠããŸãã",
"staticDataBoundary": "衚瀺ãããç©èªã¯ãäºåã«AIãçæãããã®ãèšé²ããéçãªãµã³ãã«ããŒã¿ã§ãããªã¢ã«ã¿ã€ã ã®ããŒã¿åæ ãAPIåŒã³åºãã¯è¡ããŸããã",
"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": "é£è§£ãªå®å®å€©æ°ã®ç§åŠããŒã¿ããAIã«ãã£ãŠå¿æž©ãŸãçµµæ¬ã«å€æãããæ§åãäœéšã§ããŸãããç©èªãå§ããããã¿ã³ãæŒãã ãã§ãå°éç¥èããªããŠãå®å®ã®å£®å€§ãªç©èªã®æåã®1ããŒãžã楜ãããŸãã",
"coreInteraction": "ãŠãŒã¶ãŒã¯ãç©èªãé²ããããã¿ã³ãã¯ãªãã¯ãã倪éœããå°çãžã®ãšãã«ã®ãŒã®æ
ã1ããŒãžãã€èªã¿é²ããŸãã",
"stateChange": "ãã¿ã³ãã¯ãªãã¯ãããã³ã«ã衚瀺ãšãªã¢ã®ç©èªã®å
容ïŒã¿ã€ãã«ããã¬ãŒã·ã§ã³ãã€ã©ã¹ãæåãç§åŠçæ ¹æ ïŒã次ã®ããŒãžãžãšæŽæ°ãããŸãã",
"inspectableOutput": "æçµçã«è¡šç€ºããããå
šããŒãžããæ§æãããçãçµµæ¬ã®ç©èªã§ããåããŒãžã¯ãã¬ãŒã·ã§ã³ãšç§åŠçæ ¹æ ãã»ããã«ãªã£ãŠããŸãã",
"staticDataBoundary": "衚瀺ãããç©èªã¯ãäºåã«AIãçæãããã®ãèšé²ããéçãªãµã³ãã«ããŒã¿ã§ãããªã¢ã«ã¿ã€ã ã®ããŒã¿åæ ãAPIåŒã³åºãã¯è¡ããŸããã",
"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"
],
"forbiddenDependencies": [
"external API",
"secret",
"login-only flow",
"paid API",
"external publishing"
],
"contractVersion": "mvp-contract-v2",
"artifactTier": "proposed_integration",
"externalDependencyMode": "proposed",
"externalIntegrations": [
{
"service": "Google Gemini API",
"intendedUse": "ç§åŠçãªã€ãã³ãããŒã¿ïŒå€ªéœãã¬ã¢ãªã©ïŒãå
¥åãšããŠåãåããåã©ãåãã®ç©èªããŒãžïŒã€ã©ã¹ãæåããã¬ãŒã·ã§ã³ãç§åŠçæ ¹æ ïŒãJSON圢åŒã§çæããããã«ã`gemini-2.5-flash`ã¢ãã«ã䜿çšããŸãã",
"dataFlow": "ïŒææ¡ïŒæ§é åããã倪éœã€ãã³ãããŒã¿ -> `source/core/steps/generateStoryElements.ts`ãããã³ãããæ§ç¯ -> `source/core/gemini.ts`ãAPIãåŒã³åºã -> JSON圢åŒã®ç©èªèŠçŽ ãè¿ããã -> `source/app/page.tsx`ãéçãã¬ãŒã¹ã衚瀺",
"authRequirement": "api_key",
"currentImplementation": "not_connected",
"sampleDataPath": "source/data/sample-trace.ts",
"riskNotes": [
"çæãããç©èªã®ç§åŠçæ£ç¢ºæ§ã¯ãããã³ããã®èšèšãšã¢ãã«ã®èœåã«äŸåããŸãã"
]
}
],
"runtimeBoundary": {
"networkCalls": "none",
"secrets": "none",
"externalWrites": "none"
},
"mvpComplexityBudget": {
"maxScreens": 1,
"maxPrimaryActions": 1,
"maxSourceFiles": 12,
"maxNewDependencies": 0,
"allowDatabase": false
},
"integrationAssumptions": [
{
"service": "Google Gemini API",
"verificationStatus": "unverified",
"unavailableOrUnknown": [
"æ£ç¢ºãªã¬ã¹ãã³ã¹ã®ã¹ããŒãããšã©ãŒãã³ããªã³ã°ã®è©³çްã¯ãå
¬åŒããã¥ã¡ã³ãã§æçµç¢ºèªãå¿
èŠã§ãã",
"ã³ã³ãã³ããã£ã«ã¿ãªã³ã°ããªã·ãŒããç§åŠçãªç©èªçæã«äºæãã¬åœ±é¿ãäžããå¯èœæ§ããããŸãã"
],
"rateLimitRisk": "low",
"costRisk": "low",
"termsRisk": "low"
}
],
"mockFidelity": {
"samplePayloadPath": "source/data/sample-trace.ts",
"simulatedBehaviors": [
"ãã€ãã©ã€ã³ã®åã¹ãããïŒããŒã¿æœåºãAIã«ããç©èªçæãæ§æïŒãæåããå Žåã®åºåãã·ãã¥ã¬ãŒãããŠããŸãã"
],
"omittedBehaviors": [
"APIããŒèªèšŒããããã¯ãŒã¯é
å»¶ãAPIåŒã³åºããšã©ãŒãã¬ãŒãå¶éãã³ã³ãã³ããã£ã«ã¿ãªã³ã°ã«ããæåŠãšãã£ããå®éã®API飿ºã§çºçãããæåã¯çç¥ãããŠããŸãã"
],
"failureCasesIncluded": [
"empty result"
]
},
"claimBoundary": {
"publicCopyMustSay": [
"衚瀺ãããç©èªã¯ãAIãçæãããµã³ãã«ã§ãã",
"ãªã¢ã«ã¿ã€ã ã®ããŒã¿ãäºå ±ã§ã¯ãããŸããã",
"ç©èªã®è¡šçŸã¯ç§åŠçäºå®ãåºã«ããŠããŸãããæè²ç®çã§ç°¡ç¥åãããŠããŸãã"
],
"publicCopyMustNotSay": [
"ãªã¢ã«ã¿ã€ã ã®å®å®ããŒã¿ã衚瀺ããŸãã",
"å®éã®å€ªéœãã¬ã¢ãäºæž¬ã»èŠåããŸãã",
"ç§åŠçã«100%æ£ç¢ºãªç©èªã§ãã"
]
},
"renderVerification": {
"required": true,
"checks": [
"render",
"click",
"state_change",
"screenshot"
]
},
"humanReviewTriggers": [
"æè²çã³ã³ãã³ãã®æ£ç¢ºæ§ã«é¢ããã¬ãã¥ãŒ",
"åã©ãåãã³ã³ãã³ããšããŠã®é©åæ§ã«é¢ããã¬ãã¥ãŒ"
]
},
"interactionProofPlan": {
"primaryAction": "ç©èªãå§ãã",
"initialState": "ç©èªã®åçåã§ãéå§ãä¿ãã¡ãã»ãŒãžã衚瀺ãããŠããç¶æ
ã",
"expectedState": "ç©èªã®1ããŒãžç®ãã¿ã€ãã«ããã¬ãŒã·ã§ã³ãã€ã©ã¹ãæåãšå
±ã«è¡šç€ºãããŠããç¶æ
ã",
"visibleEvidence": [
"æ
ã®å§ãŸã",
"é ãæãç§ãã¡ã®å€§ããªæã倪éœããã£ãšç®èŠããŸããããããŠãå°ããªå
ã®ç²ãå°çãžéãæ
ãå§ããã®ã§ãã",
"ç©èªãé²ãã"
],
"proofSelectors": [
"button[data-proof='next-button']",
"div[data-proof='story-output']",
"h2[data-proof='page-title']",
"p[data-proof='narration-text']"
],
"requiredSourceFiles": [
"source/app/page.tsx",
"source/core/pipeline.ts",
"source/data/sample-trace.ts"
],
"manualFallbackReason": ""
},
"generatedOutput": {
"title": "倪éœã®ãããã",
"oneLiner": "倪éœããå±ããšãã«ã®ãŒã®æ
ããçŸããã€ã©ã¹ããšçãç©èªã§è¿œããããçµµæ¬ã",
"artifactShape": "explainer",
"templatePatternId": "guided_explainer_path",
"surfacePattern": "learning_explainer",
"aiMechanismPattern": "workflow_generation"
},
"rewriteApplied": {
"changedFilePaths": [
"source/app/page.tsx",
"source/core/steps/assembleStory.ts"
],
"appendedFilePaths": []
},
"implementationNotes": [
"äœãæ(ginji)ã®ãããŒã¿ããç©èªã玡ãããšããäœå®¶æ§ãåæ ããUIã¯ããŒãžããããçµµæ¬ã®ãããªäœéšã«ããŸããã",
"ãstory walkthroughããšããåŸæãªç»é¢ã¿ã€ãã«åºã¥ããç©èªã®ç« ãªã¹ããšã¡ã€ã³ã®è¡šç€ºãšãªã¢ãåããã¬ã€ã¢ãŠããæ¡çšããŸããã",
"ãdata_distortionã(ããŒã¿ã®æªæ²)ãšããåµäœäžã®ã¢ã³ããã¿ãŒã³ãé¿ãããããåç©èªããŒãžã«ç§åŠçæ ¹æ ãæèšããæ¬ãèšããŸããã"
],
"knownRisks": [
"AIãçæããç©èªã®å質ãå®å®ããªãå¯èœæ§ããããç§åŠçãªæ£ç¢ºããšç©èªãšããŠã®é¢çœãã®ãã©ã³ã¹èª¿æŽãé£ããç¹ã",
"éçãªã€ã©ã¹ãæåããã¹ãã®ã¿ã§ã¯ããããã¯ãã®é
åãäŒãããããªãå¯èœæ§ãããç¹ã"
],
"title": "倪éœã®ãããã",
"oneLiner": "倪éœããå±ããšãã«ã®ãŒã®æ
ããçŸããã€ã©ã¹ããšçãç©èªã§è¿œããããçµµæ¬ã",
"agentId": "agent_p",
"selfDirectedPlan": {
"agentId": "agent_p",
"planningIntent": "ä»åã®ãããã§æåªå
ãšããããé£è§£ãªç§åŠãçµµæ¬ã»ç©èªãšããŠç¿»èš³ããããšããæ¹éã«ããã®ã倪éœã®ããããããæãå¿ å®ãã€é«ãå質ã§å¿ããŠããããéžæãããç§ã®æã€ãããŒã¿ããç©èªãèŠåºãããšããäœå®¶æ§ïŒ`conceptSelectionRules`ïŒãšãå®å
šã«åèŽããããœãŒã¹ãšãªã£ããHerCode SpaceããNASAã®Storytellingè³ãåè³ããŠãããšãã匷åãªæ ¹æ ããããå€ãã®äººã«å±ãããã³ã·ã£ã«ãé«ããAIã®å
éšåäœãèŠããã³ã³ã»ããã§ã¯ãªãããã¡ã€ã³ã®é£è§£ããçµµæ¬åœ¢åŒã§è§£æ¶ãããããããªã¹ã¯ãäœãç¹ã決ãæãšãªã£ãã",
"publicProductionMemo": "ãã®ã倪éœã®ãããããã¯ãæ®æ®µæèããªãå®å®ã®å£®å€§ãªå¶ã¿ãã誰ããæ¥œãããçµµæ¬ã®ãããªç©èªã§è¡šçŸããŸãããé£è§£ãªç§åŠããŒã¿ããå¿æž©ãŸããã¬ãŒã·ã§ã³ãšçŸããã€ã©ã¹ãã§å€æããããšã§ãç¥ç奜å¥å¿ãšææ
çãªã€ãªããã®äž¡æ¹ã倧åã«ããŠããŸããããŒã¿ãæã€çå®ã®ç©èªãèª å®ã«äŒããé床ãªãã©ãã誀解ãæã衚çŸãé¿ããããšã«ç¹ã«é
æ
®ããŸããããã®äœåãéããŠãå®å®ããã£ãšèº«è¿ã«æãããããããªäœéšãç®æããŸãã",
"feedbackConstraints": [
"éå»ã®æåäºäŸïŒCreativeç³»ãé¿ããçµéšïŒã掻ãããé£è§£ãªç§åŠãç©èªãšããŠå€æããåµé çãªåºå圢åŒãåªå
ããŸããã",
"ãdata_distortionããé¿ãããšããåŠã³ãããç©èªã¯å¿
ãç§åŠçããŒã¿ã«åºã¥ããäºå®ãæªããªãããã«èšè¿°ããããšãèŠä»¶ã«è¿œå ããŸããã",
"ãevidence_free_dramaããé¿ãããšããåŠã³ãããç©èªã®åã·ãŒã³ã«ã¯å
·äœçãªç§åŠçæ ¹æ ãæŠå¿µãžã®èšåãå«ããããšãèŠä»¶ã«è¿œå ããŸããã",
"ãDo not distort the data for narrative effect.ããšããåŠã³ãåæ ããç©èªæ§ã远æ±ããããŸãç§åŠçæ£ç¢ºæ§ãæãªããªãããã衚çŸã®ãã©ã³ã¹ã«ç¹ã«æ³šæãæãããšãèŠä»¶ã«è¿œå ããŸããã"
],
"learningApplied": [
"Creativeç³»ã§é¿ããŠããã"
]
},
"sourceProvenance": {
"sourceProductUsed": "nasa_spaceapps_2025_hercode_space",
"sourceProductUse": "inspiration_only",
"sourceEvidenceAudit": {
"evidenceLevel": "verified",
"observedFields": [
"name",
"concept",
"targetUser"
],
"inferredFields": [
"transferableStructure"
],
"missingFields": [
"codeUrl",
"productUrl"
],
"usePolicy": "inspiration_only"
},
"antiCloneBoundary": "ãA Solar Taleããšããå
·äœçãªç©èªãããHerCode Spaceãã®åç§°ã¯ã³ããŒããªãã倪éœé¢šãå®å®å€©æ°ã顿ã«ããããšã¯èš±å®¹ãããããæœè±¡çãªãç§åŠãç©èªã®åœ¢ã§äŒããããšããæ§é ã®ã¿ã転çšããã",
"sourceBoundary": "ãHerCode Spaceããã芳å¯ãããäºå®ïŒååãã³ã³ã»ãããã¿ãŒã²ãããŠãŒã¶ãŒïŒã¯ã€ã³ã¹ãã¬ãŒã·ã§ã³ãšããŠå©çšå¯èœã§ãããã³ãŒãURLã補åURLãªã©ãäžè¶³ããŠããäºå®ã¯äž»åŒµããŠã¯ãªããŸããã",
"missingSourceEvidence": [
"codeUrl missing",
"UI evidence unavailable"
]
},
"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_p_20260707T210641",
"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": "ç©èªã®åçåã§ãéå§ãä¿ãã¡ãã»ãŒãžã衚瀺ãããŠããç¶æ
ã",
"expectedState": "ç©èªã®1ããŒãžç®ãã¿ã€ãã«ããã¬ãŒã·ã§ã³ãã€ã©ã¹ãæåãšå
±ã«è¡šç€ºãããŠããç¶æ
ã",
"visibleEvidence": [
"æ
ã®å§ãŸã",
"é ãæãç§ãã¡ã®å€§ããªæã倪éœããã£ãšç®èŠããŸããããããŠãå°ããªå
ã®ç²ãå°çãžéãæ
ãå§ããã®ã§ãã",
"ç©èªãé²ãã"
],
"proofSelectors": [
"button[data-proof='next-button']",
"div[data-proof='story-output']",
"h2[data-proof='page-title']",
"p[data-proof='narration-text']"
],
"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": [
"衚瀺ãããç©èªã¯ãAIãçæãããµã³ãã«ã§ãã",
"ãªã¢ã«ã¿ã€ã ã®ããŒã¿ãäºå ±ã§ã¯ãããŸããã",
"ç©èªã®è¡šçŸã¯ç§åŠçäºå®ãåºã«ããŠããŸãããæè²ç®çã§ç°¡ç¥åãããŠããŸãã"
],
"publicCopyMustNotSay": [
"ãªã¢ã«ã¿ã€ã ã®å®å®ããŒã¿ã衚瀺ããŸãã",
"å®éã®å€ªéœãã¬ã¢ãäºæž¬ã»èŠåããŸãã",
"ç§åŠçã«100%æ£ç¢ºãªç©èªã§ãã"
]
},
"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 { sampleTrace } from '../data/sample-trace';
// NOTE: Types are re-declared here to avoid importing from `source/core`
// This is a requirement for the static artifact pattern.
interface StoryPage {
pageId: string;
title: string;
illustrationDescription: string;
narrationText: string;
dataPointEvidence: string;
}
export default function Home() {
const [currentPage, setCurrentPage] = useState<number>(-1); // -1: Initial state
const storyPages: StoryPage[] = sampleTrace.finalOutput;
const handleNext = () => {
setCurrentPage(prev => (prev + 1) % storyPages.length);
};
const handleReset = () => {
setCurrentPage(-1);
};
const isStoryStarted = currentPage > -1;
const isStoryFinished = currentPage === storyPages.length - 1;
// Function to get a placeholder image URL based on pageId
const getImageForPage = (pageId: string) => {
switch (pageId) {
case 'solar-journey-01':
return 'https://picsum.photos/seed/sun-journey-1/600/300?grayscale&blur=2'; // Sun awakening
case 'solar-journey-02':
return 'https://picsum.photos/seed/earth-path-2/600/300?grayscale&blur=1'; // Light travelling to Earth
case 'solar-journey-03':
return 'https://picsum.photos/seed/aurora-curtain-3/600/300'; // Aurora
default:
return 'https://picsum.photos/seed/default-story/600/300'; // Generic placeholder
}
};
return (
<div style={{ fontFamily: 'sans-serif', maxWidth: '800px', margin: '0 auto', padding: '2rem' }}>
<header style={{ borderBottom: '1px solid #eee', paddingBottom: '1rem', marginBottom: '2rem' }}>
<h1 style={{ fontSize: '2.5rem' }}>倪éœã®ãããã</h1>
<p>倪éœããå±ããšãã«ã®ãŒã®æ
ããçŸããã€ã©ã¹ããšçãç©èªã§è¿œããããçµµæ¬ã</p>
</header>
<main>
<div style={{ display: 'flex', gap: '2rem' }}>
<aside style={{ width: '200px' }}>
<h3 style={{ marginTop: 0 }}>ç©èªã®æ§æ</h3>
<ol style={{ paddingLeft: '1.5rem' }}>
{sampleTrace.pipeline.map((step, index) => (
<li key={index} style={{ marginBottom: '0.5rem' }}>{step.stepName}</li>
))}
</ol>
</aside>
<div style={{ flex: 1 }}>
<div
data-proof="story-output"
style={{
border: '1px solid #ddd',
borderRadius: '8px',
padding: '1.5rem',
minHeight: '300px',
backgroundColor: '#f9f9f9',
display: 'flex',
flexDirection: 'column',
justifyContent: 'center'
}}
>
{!isStoryStarted ? (
<p style={{ textAlign: 'center', color: '#666' }}>äžã®ãã¿ã³ãæŒããŠãç©èªã®æ
ãå§ããŸãããã</p>
) : (
<div>
<h2 data-proof="page-title" style={{ marginTop: 0, color: '#333' }}>{storyPages[currentPage].title}</h2>
<p data-proof="narration-text" style={{ fontSize: '1.1rem', lineHeight: 1.6, color: '#444' }}>
{storyPages[currentPage].narrationText}
</p>
<div style={{ margin: '1rem 0', textAlign: 'center' }}>
<img
src={getImageForPage(storyPages[currentPage].pageId)}
alt={storyPages[currentPage].illustrationDescription}
style={{ maxWidth: '100%', height: 'auto', borderRadius: '8px', boxShadow: '0 4px 8px rgba(0,0,0,0.1)' }}
/>
</div>
<p style={{ fontSize: '0.9rem', color: '#777', borderTop: '1px dashed #ccc', paddingTop: '1rem', marginTop: '1rem' }}>
<i>{`[${storyPages[currentPage].illustrationDescription}]`}</i>
</p>
<p style={{ fontSize: '0.8rem', color: '#888' }}>
{storyPages[currentPage].dataPointEvidence}
</p>
</div>
)}
</div>
<div style={{ marginTop: '1rem', textAlign: 'center' }}>
{isStoryFinished ? (
<button
data-proof="reset-button"
onClick={handleReset}
style={{ padding: '0.75rem 1.5rem', fontSize: '1rem', cursor: 'pointer' }}
>
ããäžåºŠèªã
</button>
) : (
<button
data-proof="next-button"
onClick={handleNext}
style={{ padding: '0.75rem 1.5rem', fontSize: '1rem', cursor: 'pointer', fontWeight: 'bold' }}
>
{isStoryStarted ? 'ç©èªãé²ãã' : 'ç©èªãå§ãã'}
</button>
)}
</div>
</div>
</div>
</main>
</div>
);
}
Run context. ããã§ã¯ç®¡ç倿ã«å¿ èŠãªRunã®èŠçŽã ãã衚瀺ããŸããpromptãinputãresponseãmetadataJsonã®å šæã¯é垞確èªããå€ãã å¿ èŠãªå Žåã ãRun詳现ãã°ã§ç¢ºèªããŸãã
- Run ID
- run_selfdirected_agent_p_20260707T210641
- èµ·åçš®å¥
- llm_pipeline
- èªåŸåºŠ
- L1_assisted
- å®è¡è
- system / LLM Pipeline Publisher
- éå§
- 2026/7/8 06:21:47 JST
- å®äº
- 2026/7/8 06:21:47 JST
- çæ / å ¬é / 倱æ
- 1 / 1 / 0
- 蚌跡件æ°
- 8 events / 29 artifacts / 40 checks
LLM pipeline run for selfdirected_agent_p_20260707T210641. Published 0 project(s).
