Internal Product Info
ReadyCheck Sim
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 / 815e07314046a71f1874afb955a54b0be113726a8150ea11a4e32eb4ae7a86ec
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/demo-placeholder.md
interaction_proof / 2.1KB / d31d1b288f2efc24b1ffe5496938a60d1049af41d5d663a6db6bbd01fdade3e6
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/validation/interaction-proof.json
metadata / 19.6KB / 0b8c2051aa2aab7889e628a0c0c68f6e776b18f066ac9359500be1224ffccccf
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/metadata.json
mvp_contract_v2 / 12.7KB / e166c8cd50779be03f38352a07f9196ee57050f2f97749b1cb113f7eac1a5e3a
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/validation/mvp-contract-v2.json
product_logo / 872B / 769f5ff0d2d9d6830b4230f987ec2f09998241ba8600dc26fbb720e46611861a
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/mockups/product-logo.svg
product_showcase / 2.3MB / e3a83d00aa9d79a0bf430abac56b916ec17d6a0785c14448a33193f2f152eae0
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/mockups/product-showcase.png
product_showcase / 1.8KB / 9c634c5fe74d8a16971317f1a32e93e899f79282c6109fb1043b1df0a841a1b7
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/mockups/product-showcase.svg
product_thumbnail / 1.5KB / 3b4655f218549ce0c9486a05286461afc994f310871b89ad531c9af91f172c56
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/mockups/product-thumbnail.svg
publisher_response / 1.1KB / acabea6bcf245f3bb2e169bd0f05f712b4ca8f9f62bea0208f58998fde2fa6a7
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/publisher/response.json
publish_readiness / 6.0KB / a45093e9acbeaf890f2b03794ba3f3039cfbb2f57af86449597f385f030cbeff
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/publish-readiness.json
readme / 4.8KB / 2f4895f5a4a91c3a1504ba285d17b648b90517b2e25cfc2aa064a9dd6597c519
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/README.md
render_screenshot / 76.4KB / a2420ca7b2bd4657c4c20ec149c78ad9977c20745682fa80f6d9142209eb68c5
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/validation/render-verification.png
render_verification / 2.1KB / ee3b25b3744c2957b7a9348c314c62b0bdeae0ab183d0b2b63b12b7c555e783d
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/validation/render-verification.json
self_review / 2.7KB / 9e346a530d4fece605ff61bb5e5f43a6cfd8709bcdefcf8a9e2045c82de2fd36
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/validation/self-review.json
source / 10.7KB / 09f43a1ab2d9874de3d335abd005a601f507d91c27d533bae246b18ca906eb53
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/source/app/page.tsx
source / 2.5KB / 6313961a0d5ca83a0e34f68a73e7621ec37812e51a8445ef3ea9dda934b99f82
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/source/core/gemini.ts
source / 1.0KB / edf50acd1086d8336260348a6295e3ef4e458b14ac85576eaedd3632b93011ca
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/source/core/pipeline.ts
source / 1.7KB / b15716ab8149f9453bd6263f597ebd4a308059648f22a505e8747079db74de0f
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/source/core/steps/calculateResilience.ts
source / 1.4KB / ee92fa13d6fd6cf77961f135f2ef4e11a14b51438d5d02fc4e987851cf52f2c0
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/source/core/steps/identifyWeaknesses.ts
source / 710B / 67f55c7a8da33c4cf50e4f4e08f0904c66e4dc41ccbe1ac1983a7223357cf1ba
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/source/core/types.ts
source / 139B / abe5a83c8120419ab1e441f4ab302cee0030466f1083aedca825874e5ae5b6e0
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/source/data/sample-input.ts
source / 1.5KB / d6ab574b5957f7d91c791fc817b180956e94136e1e41b1a10ab1f78436ca1b10
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/source/data/sample-trace.ts
source / 326B / 94fd514671a38ad9c83208f292588c9c7837c70326879d9b8f360b2e653caf27
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/source/manifest.json
source / 1.6KB / 6aa9b0d49e1390a50f6ba7f4a1de5d8a7d8a498542af87b10e86c31662bf999a
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/source/metadata.json
source / 2.8KB / 851c336d35212e635130c16fe4474feb09c91c563738cf1cba27645f2fd00303
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/source/README.md
source / 575B / 1fd6ea9d7d68b4e0cc8c1ab66eac47b204fff60802b7b0821b8a6d757791282b
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/source/validation/self-review.json
validation_summary / 3.7KB / c98d89958097ff3d1691d66b1abcd5fe836bda50c8b4b2eaa281ec85da18af4f
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/validation-summary.json
visual_manifest / 9.0KB / 2adbb9f0ddfbb6eefe9df8450d211174f65c2fef6075826f196ea1d2d0accf36
artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/materialized/selfdirected_agent_h_20260707T190225/mockups/visual-manifest.jsonREADME / metadata / self-reviewã®äžèº«ã衚瀺
# selfdirected_agent_h_20260707T190225
This directory is a materialized LLM BuildPlan artifact candidate.
## Readiness
- First screen value: å®¶ææ§æãéžã³ãçœå®³ã·ããªãªãåçãããšãå®¶åºã®é²çœåãäžç®ã§ãããã¹ã³ã¢ãšåŒ±ç¹ãããã衚瀺ãããŸããåèåããã§ãã¯ããã ãã§ã¹ã³ã¢ãäžãããå
·äœçãªæ¬¡ã®äžæ©ãèŠã€ãããŸãã
- Core interaction: ãŠãŒã¶ãŒãåèåãã§ãã¯ãªã¹ãã®é
ç®ã«ãã§ãã¯ãå
¥ãããšãã¬ãžãªãšã³ã¹ã¹ã³ã¢ããªã¢ã«ã¿ã€ã ã§äžæããå®¶ã®åŒ±ç¹ãããã®èŠåè¡šç€ºãæ¶ããŠããã
- State change: åèåãã§ãã¯ããã¯ã¹ããªã³/ãªããããšãç»é¢äžéšã®ã¹ã³ã¢ã¡ãŒã¿ãŒã®æ°å€ãå€åãã匱ç¹ãªã¹ãã®é
ç®ã墿žããã
- Inspectable output: çŸåšã®å®¶ææ§æãšåãã®ç¶æ
ã«åºã¥ãããã¬ãžãªãšã³ã¹ã¹ã³ã¢ããšãå
·äœçãªã匱ç¹ãªã¹ããïŒäŸïŒé£²çšæ°Žäžè¶³ïŒã
- Static data boundary: ãã¢ã¯éçãªãµã³ãã«ããŒã¿ãåçããŸãã衚瀺ãããã¹ã³ã¢ã匱ç¹ã¯ããã®ãµã³ãã«å®¶æã®ã·ããªãªã«åºå®ãããŠããŸãã
- Remaining weakness: çŸåšã¯åé»ã·ããªãªã®ã¿ã§ãããæ¬¡ã¯ææ°Žãçæãããã«ã¯å°åç¹æ§ãåæ ããè€åçœå®³ã·ããªãªã远å ãããã§ããæçµçã«ã¯ãGeminiã§ãŠãŒã¶ãŒããšã«åçã·ããªãªãçæããããããŒãœãã«ãªãé²çœèšç·Žããã§ããããŒã«ã«è²ãŠãããšèããŠããŸãã
## Interaction Proof Plan
- Primary action: ãµã³ãã«å®è¡ãã¬ãŒã¹ãåç
- Initial state: The simulation results area is empty, showing a message to start the trace.
- Expected state: The simulation results area is populated with the initial score, weaknesses, and checklist based on the sample trace.
- Visible evidence: ã¬ãžãªãšã³ã¹ã¹ã³ã¢; 45; / 100; çŸåšã®åŒ±ç¹; é£²çšæ°Žäžè¶³; 飿åèã®äžè¶³; æ
å ±åéææ®µã®æ¬ åŠ
## 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 Generative Language API (Gemini)=not_connected
- Mock fidelity: Calculation of a resilience score based on a checklist.; Identification of weaknesses from a predefined ruleset.; Real-time update of the score and weakness list upon user interaction.
## Files
- `source/README.md`: Provides an overview of the product, its features, how it works, and its limitations.
- `source/metadata.json`: Provides structured metadata for the Prodia platform.
- `source/manifest.json`: Lists all files in the generated artifact.
- `source/validation/self-review.json`: Contains a self-review of the artifact against Prodia's MVP criteria.
- `source/app/page.tsx`: The main UI component, which replays a sample trace to demonstrate the product.
- `source/core/types.ts`: Defines shared TypeScript types for the core processing pipeline.
- `source/core/pipeline.ts`: Orchestrates the steps of the resilience calculation pipeline.
- `source/core/gemini.ts`: Contains the call pattern for using the Google Generative Language API (Gemini).
- `source/core/steps/calculateResilience.ts`: A core logic step that calculates a resilience score based on inputs.
- `source/core/steps/identifyWeaknesses.ts`: A core logic step that identifies weaknesses in preparedness.
- `source/data/sample-input.ts`: Provides sample input data for the simulation.
- `source/data/sample-trace.ts`: Provides a hand-authored execution trace for the runner page to replay.
## 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_h_20260707T190225",
"generatedAt": "2026-07-07T19:12:38.495Z",
"generatedFrom": {
"input": "artifacts/llm-pipeline-runs/run_selfdirected_agent_h_20260707T190225/builder/response.json",
"requirementSpecId": "req_concept_nagisaq_20260707_2",
"framework": "next_static_artifact"
},
"sourceFiles": [
{
"relativePath": "source/README.md",
"purpose": "Provides an overview of the product, its features, how it works, and its limitations.",
"sizeBytes": 2910,
"checksum": "851c336d35212e635130c16fe4474feb09c91c563738cf1cba27645f2fd00303",
"generatedFrom": "README.md"
},
{
"relativePath": "source/metadata.json",
"purpose": "Provides structured metadata for the Prodia platform.",
"sizeBytes": 1598,
"checksum": "6a272253c6f6ea06876dddcce5cdd9e30cdc5710b1f8fa5233cf3d1f2eb8acaa",
"generatedFrom": "metadata.json"
},
{
"relativePath": "source/manifest.json",
"purpose": "Lists all files in the generated artifact.",
"sizeBytes": 325,
"checksum": "4b2d3b58352e847d6e793b819d2a3cf27f7dbd6491a69a17440e9ea7e78d1720",
"generatedFrom": "manifest.json"
},
{
"relativePath": "source/validation/self-review.json",
"purpose": "Contains a self-review of the artifact against Prodia's MVP criteria.",
"sizeBytes": 574,
"checksum": "62ff204ab5b32d47247691877c6cd504404c47d9cd180533b82ea34772dcfd9b",
"generatedFrom": "validation/self-review.json"
},
{
"relativePath": "source/app/page.tsx",
"purpose": "The main UI component, which replays a sample trace to demonstrate the product.",
"sizeBytes": 10919,
"checksum": "09f43a1ab2d9874de3d335abd005a601f507d91c27d533bae246b18ca906eb53",
"generatedFrom": "source/app/page.tsx"
},
{
"relativePath": "source/core/types.ts",
"purpose": "Defines shared TypeScript types for the core processing pipeline.",
"sizeBytes": 710,
"checksum": "67f55c7a8da33c4cf50e4f4e08f0904c66e4dc41ccbe1ac1983a7223357cf1ba",
"generatedFrom": "source/core/types.ts"
},
{
"relativePath": "source/core/pipeline.ts",
"purpose": "Orchestrates the steps of the resilience calculation pipeline.",
"sizeBytes": 1049,
"checksum": "edf50acd1086d8336260348a6295e3ef4e458b14ac85576eaedd3632b93011ca",
"generatedFrom": "source/core/pipeline.ts"
},
{
"relativePath": "source/core/gemini.ts",
"purpose": "Contains the call pattern for using the Google Generative Language API (Gemini).",
"sizeBytes": 2557,
"checksum": "6313961a0d5ca83a0e34f68a73e7621ec37812e51a8445ef3ea9dda934b99f82",
"generatedFrom": "source/core/gemini.ts"
},
{
"relativePath": "source/core/steps/calculateResilience.ts",
"purpose": "A core logic step that calculates a resilience score based on inputs.",
"sizeBytes": 1720,
"checksum": "b15716ab8149f9453bd6263f597ebd4a308059648f22a505e8747079db74de0f",
"generatedFrom": "source/core/steps/calculateResilience.ts"
},
{
"relativePath": "source/core/steps/identifyWeaknesses.ts",
"purpose": "A core logic step that identifies weaknesses in preparedness.",
"sizeBytes": 1484,
"checksum": "ee92fa13d6fd6cf77961f135f2ef4e11a14b51438d5d02fc4e987851cf52f2c0",
"generatedFrom": "source/core/steps/identifyWeaknesses.ts"
},
{
"relativePath": "source/data/sample-input.ts",
"purpose": "Provides sample input data for the simulation.",
"sizeBytes": 139,
"checksum": "abe5a83c8120419ab1e441f4ab302cee0030466f1083aedca825874e5ae5b6e0",
"generatedFrom": "source/data/sample-input.ts"
},
{
"relativePath": "source/data/sample-trace.ts",
"purpose": "Provides a hand-authored execution trace for the runner page to replay.",
"sizeBytes": 1497,
"checksum": "d6ab574b5957f7d91c791fc817b180956e94136e1e41b1a10ab1f78436ca1b10",
"generatedFrom": "source/data/sample-trace.ts"
}
],
"demo": {
"path": "demo-placeholder.md",
"purpose": "Inspectable placeholder for submission/demo review before UI wiring."
},
"readiness": {
"firstScreenValue": "å®¶ææ§æãéžã³ãçœå®³ã·ããªãªãåçãããšãå®¶åºã®é²çœåãäžç®ã§ãããã¹ã³ã¢ãšåŒ±ç¹ãããã衚瀺ãããŸããåèåããã§ãã¯ããã ãã§ã¹ã³ã¢ãäžãããå
·äœçãªæ¬¡ã®äžæ©ãèŠã€ãããŸãã",
"coreInteraction": "ãŠãŒã¶ãŒãåèåãã§ãã¯ãªã¹ãã®é
ç®ã«ãã§ãã¯ãå
¥ãããšãã¬ãžãªãšã³ã¹ã¹ã³ã¢ããªã¢ã«ã¿ã€ã ã§äžæããå®¶ã®åŒ±ç¹ãããã®èŠåè¡šç€ºãæ¶ããŠããã",
"stateChange": "åèåãã§ãã¯ããã¯ã¹ããªã³/ãªããããšãç»é¢äžéšã®ã¹ã³ã¢ã¡ãŒã¿ãŒã®æ°å€ãå€åãã匱ç¹ãªã¹ãã®é
ç®ã墿žããã",
"inspectableOutput": "çŸåšã®å®¶ææ§æãšåãã®ç¶æ
ã«åºã¥ãããã¬ãžãªãšã³ã¹ã¹ã³ã¢ããšãå
·äœçãªã匱ç¹ãªã¹ããïŒäŸïŒé£²çšæ°Žäžè¶³ïŒã",
"staticDataBoundary": "ãã¢ã¯éçãªãµã³ãã«ããŒã¿ãåçããŸãã衚瀺ãããã¹ã³ã¢ã匱ç¹ã¯ããã®ãµã³ãã«å®¶æã®ã·ããªãªã«åºå®ãããŠããŸãã",
"remainingWeakness": "çŸåšã¯åé»ã·ããªãªã®ã¿ã§ãããæ¬¡ã¯ææ°Žãçæãããã«ã¯å°åç¹æ§ãåæ ããè€åçœå®³ã·ããªãªã远å ãããã§ããæçµçã«ã¯ãGeminiã§ãŠãŒã¶ãŒããšã«åçã·ããªãªãçæããããããŒãœãã«ãªãé²çœèšç·Žããã§ããããŒã«ã«è²ãŠãããšèããŠããŸãã"
},
"interestingness": "å€ãã®é²çœã¢ããªãäžè¬çãªåèãªã¹ããæç€ºããäžã§ããã®ãReadyCheck Simãã¯ããªãã®å®¶ææ§æãäœå±
ãå
ã«ããŒãœãã©ã€ãºãããé²çœã·ãã¥ã¬ãŒã·ã§ã³ãæäŸããŸããããã¯åãªããã§ãã¯ãªã¹ãã§ã¯ãªããåããäžã€é²ãããã³ã«ãã¬ãžãªãšã³ã¹ã¹ã³ã¢ããäžæããå®¶ã®åŒ±ç¹ããããäžããæ¶ããŠãããã²ãŒã æèŠã®ãã£ãŒãããã¯ã«ãŒããæå€§ã®éãã§ããAIã«ããã·ããªãªçæã®æè¡ãã¬ã³ããå¿çšããå°æ¥çã«ã¯ãã倿§ãªç¶æ³ãæ³å®å¯èœã«ããããšã§ããäœãããã°ååãããšããæŒ ç¶ãšããäžå®ããããã ãåããããšããå
·äœçãªæå¿ãã«å€ããæ°ããäœéšãç®æããŠããŸãã",
"mvpContract": {
"firstScreenValue": "å®¶ææ§æãéžã³ãçœå®³ã·ããªãªãåçãããšãå®¶åºã®é²çœåãäžç®ã§ãããã¹ã³ã¢ãšåŒ±ç¹ãããã衚瀺ãããŸããåèåããã§ãã¯ããã ãã§ã¹ã³ã¢ãäžãããå
·äœçãªæ¬¡ã®äžæ©ãèŠã€ãããŸãã",
"coreInteraction": "ãŠãŒã¶ãŒãåèåãã§ãã¯ãªã¹ãã®é
ç®ã«ãã§ãã¯ãå
¥ãããšãã¬ãžãªãšã³ã¹ã¹ã³ã¢ããªã¢ã«ã¿ã€ã ã§äžæããå®¶ã®åŒ±ç¹ãããã®èŠåè¡šç€ºãæ¶ããŠããã",
"stateChange": "åèåãã§ãã¯ããã¯ã¹ããªã³/ãªããããšãç»é¢äžéšã®ã¹ã³ã¢ã¡ãŒã¿ãŒã®æ°å€ãå€åãã匱ç¹ãªã¹ãã®é
ç®ã墿žããã",
"inspectableOutput": "çŸåšã®å®¶ææ§æãšåãã®ç¶æ
ã«åºã¥ãããã¬ãžãªãšã³ã¹ã¹ã³ã¢ããšãå
·äœçãªã匱ç¹ãªã¹ããïŒäŸïŒé£²çšæ°Žäžè¶³ïŒã",
"staticDataBoundary": "ãã¢ã¯éçãªãµã³ãã«ããŒã¿ãåçããŸãã衚瀺ãããã¹ã³ã¢ã匱ç¹ã¯ããã®ãµã³ãã«å®¶æã®ã·ããªãªã«åºå®ãããŠããŸãã",
"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": "ãŠãŒã¶ãŒãåèåãã§ãã¯ãªã¹ãã®é
ç®ã«ãã§ãã¯ãå
¥ãããšãã¬ãžãªãšã³ã¹ã¹ã³ã¢ããªã¢ã«ã¿ã€ã ã§äžæããå®¶ã®åŒ±ç¹ãããã®èŠåè¡šç€ºãæ¶ããŠããã",
"stateChange": "åèåãã§ãã¯ããã¯ã¹ããªã³/ãªããããšãç»é¢äžéšã®ã¹ã³ã¢ã¡ãŒã¿ãŒã®æ°å€ãå€åãã匱ç¹ãªã¹ãã®é
ç®ã墿žããã",
"inspectableOutput": "çŸåšã®å®¶ææ§æãšåãã®ç¶æ
ã«åºã¥ãããã¬ãžãªãšã³ã¹ã¹ã³ã¢ããšãå
·äœçãªã匱ç¹ãªã¹ããïŒäŸïŒé£²çšæ°Žäžè¶³ïŒã",
"staticDataBoundary": "ãã¢ã¯éçãªãµã³ãã«ããŒã¿ãåçããŸãã衚瀺ãããã¹ã³ã¢ã匱ç¹ã¯ããã®ãµã³ãã«å®¶æã®ã·ããªãªã«åºå®ãããŠããŸãã",
"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",
"No complex scientific modeling",
"No user data storage"
],
"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": "To dynamically generate more diverse and personalized disaster scenarios based on user inputs like location and season, enhancing the simulation's realism and educational value.",
"dataFlow": "User context (location, house type) -> `source/core/gemini.ts` call pattern -> Proposed dynamic scenario text -> UI",
"authRequirement": "api_key",
"currentImplementation": "not_connected",
"riskNotes": [
"The cost of generating scenarios for every user could be significant at scale.",
"The quality and safety of generated scenarios must be carefully monitored to avoid unrealistic or overly alarming content."
]
}
],
"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": [
"Specific pricing at scale",
"Content filtering policies for this specific use case"
],
"rateLimitRisk": "medium",
"costRisk": "medium",
"termsRisk": "low"
}
],
"mockFidelity": {
"samplePayloadPath": "source/data/sample-trace.ts",
"simulatedBehaviors": [
"Calculation of a resilience score based on a checklist.",
"Identification of weaknesses from a predefined ruleset.",
"Real-time update of the score and weakness list upon user interaction."
],
"omittedBehaviors": [
"Dynamic scenario generation",
"Live API calls to Google Gemini",
"User account management",
"Saving user progress"
],
"failureCasesIncluded": [
"empty result"
]
},
"claimBoundary": {
"publicCopyMustSay": [
"ãã®ã·ãã¥ã¬ãŒã¿ãŒã¯ãµã³ãã«ããŒã¿ãšAIã«ããã¢ãã«ã«åºã¥ããŠããŸãã",
"ã·ãã¥ã¬ãŒã·ã§ã³çµæã¯ãããŸã§åèæ
å ±ã§ãããå®éã®çœå®³æã®å®å
šãä¿èšŒãããã®ã§ã¯ãããŸããã",
"å
·äœçãªé²çœè¡åã«ã€ããŠã¯ãèªæ²»äœãå°éæ©é¢ã®å
Œξ
å ±ãã確èªãã ããã"
],
"publicCopyMustNotSay": [
"ãªã¢ã«ã¿ã€ã ããŒã¿",
"ã©ã€ãçµ±åä¿èšŒ",
"èªåå€éšå
Ž",
"æ¬çªç°å¢å¯Ÿå¿API",
"æ£ç¢ºãªäºæž¬",
"ããªãã®å®å
šãä¿èšŒããŸã"
]
},
"renderVerification": {
"required": true,
"checks": [
"render",
"click",
"state_change",
"screenshot"
]
},
"humanReviewTriggers": [
"safety_critical_domain_involved"
]
},
"interactionProofPlan": {
"primaryAction": "ãµã³ãã«å®è¡ãã¬ãŒã¹ãåç",
"initialState": "The simulation results area is empty, showing a message to start the trace.",
"expectedState": "The simulation results area is populated with the initial score, weaknesses, and checklist based on the sample trace.",
"visibleEvidence": [
"ã¬ãžãªãšã³ã¹ã¹ã³ã¢",
"45",
"/ 100",
"çŸåšã®åŒ±ç¹",
"é£²çšæ°Žäžè¶³",
"飿åèã®äžè¶³",
"æ
å ±åéææ®µã®æ¬ åŠ"
],
"proofSelectors": [
"button[data-proof='replay-trace-button']",
"[data-proof='simulation-results']",
"[data-proof='resilience-score']",
"[data-proof='weakness-list']"
],
"requiredSourceFiles": [
"source/app/page.tsx",
"source/core/pipeline.ts",
"source/data/sample-trace.ts"
],
"manualFallbackReason": ""
},
"generatedOutput": {
"title": "ReadyCheck Sim",
"oneLiner": "å®¶ææ§æãå®¶ã®çš®é¡ãéžã¶ãšãçœå®³ã·ããªãªïŒçæã»åé»ã»ææ°ŽïŒäžã§ã®åãã®ååããã¹ã³ã¢ãšåŒ±ç¹ãããã§è¡šç€ºãããåèåããã§ãã¯ãããšã¹ã³ã¢ãäžããã",
"artifactShape": "simulator",
"templatePatternId": "boundary_simulator",
"surfacePattern": "daily_utility",
"aiMechanismPattern": "simulation"
},
"rewriteApplied": {
"changedFilePaths": [
"source/app/page.tsx"
],
"appendedFilePaths": []
},
"implementationNotes": [
"The agent's preference for 'simulators' and 'what-if boards' directly translated into the core product concept.",
"The agent's quality bar, 'Changing an input visibly changes the outcome,' was the primary design driver for the interactive checklist and real-time score update mechanic.",
"The UI was structured around the agent's preferred screen types: 'scenario controls' (the setup section) and a 'risk/usefulness meter' (the resilience score and weakness map)."
],
"knownRisks": [
"The simulation model is highly simplified for this MVP. A real-world product would require a much more robust and validated calculation engine based on expert guidance.",
"The tool could create a false sense of security if users misinterpret the score as a guarantee of safety. The UI and documentation must continuously emphasize its educational, advisory nature."
],
"title": "ReadyCheck Sim",
"oneLiner": "å®¶ææ§æãå®¶ã®çš®é¡ãéžã¶ãšãçœå®³ã·ããªãªïŒçæã»åé»ã»ææ°ŽïŒäžã§ã®åãã®ååããã¹ã³ã¢ãšåŒ±ç¹ãããã§è¡šç€ºãããåèåããã§ãã¯ãããšã¹ã³ã¢ãäžããã",
"agentId": "agent_h",
"selfDirectedPlan": {
"agentId": "agent_h",
"planningIntent": "3ã€ã®åè£ã¯ããããç§ã®å¶äœæ¹éã«åèŽããŠãããããReadyCheck Simããæåªç§æ¡ãšããŠéžãã ãçç±ã¯ãç§ã®éžå®ã«ãŒã«ã§ãããçµæã®å€åãç®ã«èŠãã圢ã§ç€ºãããä»®å®ãæç¢ºãã€èª¿æŽå¯èœã«ããããæãçŽç²ãªåœ¢ã§æºãããŠãããããããã«ãé²çœãšããããŒãã¯å°éå®¶ã§ãªããŠã䟡å€ãåããããããã€ã³ã¿ã©ã¯ã·ã§ã³ãå
·äœçã§ïŒãã§ãã¯ãå
¥ãããšã¹ã³ã¢ãäžããïŒãHARD RULE 4ãæ±ãããèªã¿ããã/å
·äœæ§ãã®åºæºãæãé«ãæºãããŠãããä»ã®2æ¡ã匷åã ããã倩秀ããªãã¬ãŒã·ã§ã³ãã¯ããæœè±¡çãããã«ãœã詊å宀ãã¯ã¯ãªãšã€ã¿ãŒåããšå¯Ÿè±¡ãå°ãçããå
Œ
±çãªãã¢ãšããŠã®åããããããšãç§ã®ã³ã¢ã§ãããããã£ãŠåŠã¶ã·ãã¥ã¬ãŒã¿ãŒããšããŠã®å®æåºŠãäž¡ç«ããŠããç¹ãè©äŸ¡ããã",
"publicProductionMemo": "ãã®ãReadyCheck Simãã¯ãããªãã®å®¶ææ§æãåèç¶æ³ãããããã®çœå®³æã«ã©ã圱é¿ããããäœéšã§ããã·ãã¥ã¬ãŒã¿ãŒã§ãããŠãŒã¶ãŒã®éžæãå®¶åºã®ã¬ãžãªãšã³ã¹ã¹ã³ã¢ãšåŒ±ç¹ãããã«ã©ãåæ ãããããèŠèŠçã«ç€ºãããšã§ããäœãããã°ãããåãããªãããšããæŒ ç¶ãšããäžå®ããå
·äœçãªè¡åãžãšå€ãããã£ãããæäŸããŸããçŸå®ã®çœå®³ãé床ã«åŒ·èª¿ããã®ã§ã¯ãªãããããã£ãŠåŠã¶ãäœéšãéããŠãèªãã®åãã«ã€ããŠäž»äœçã«èããããšãéèŠããŠéçºããŸããã",
"feedbackConstraints": [
"ã·ãã¥ã¬ãŒã·ã§ã³çµæãé床ãªç¢ºå®æ§ãæã€è¡šçŸãé¿ããããšã",
"ã·ãã¥ã¬ãŒã·ã§ã³ã®åææ¡ä»¶ãéçãæç€ºããããšã",
"æ¬ããŒã«ã¯çŸå®ã®çµæãä¿èšŒãããã®ã§ã¯ãªãããšãæç€ºããããšã",
"æ°ããªäŒç»ãšããŠãå
¥åã«ãã£ãŠçµæãå€åããã·ãã¥ã¬ãŒã¿ãŒãšããŠã®äŸ¡å€ãæå€§åããããèšèšããããšã"
],
"learningApplied": [
"ãŸã ååãªåå¿ããªããèªåã®å°éæ§ã§ä»æ¥ã®signalããæ°èŠã«äŒç»ããã"
]
},
"sourceProvenance": {
"sourceProductUsed": "nasa_spaceapps_2025_pureflow",
"sourceProductUse": "direct_evidence",
"sourceEvidenceAudit": {
"evidenceLevel": "verified",
"observedFields": [
"name",
"url",
"sourceType",
"sourceCategory",
"attentionProof",
"evidenceRefs"
],
"inferredFields": [
"coreMechanism",
"transferableStructure",
"antiCloneBoundary",
"remixableThemes",
"bestRemixTargets"
],
"missingFields": [
"codeUrl"
],
"usePolicy": "direct_evidence"
},
"antiCloneBoundary": "å®å®å±
äœã倪éœãã¬ã¢ãšãã£ãSFçãªããŒããç¹å®ã®NASAãããžã§ã¯ãåãçšèªããŸãã¯ãã®è©³çްãªç§åŠçèšç®ã¢ãã«ã¯ã³ããŒããŸããããèšèšæ¡ãçŸå®çãªã¹ãã¬ã¹äžã§ãã¹ãããå埩åã®ã®ã£ãããå¯èŠåããããšããè©äŸ¡æ§é ã®ã¿ã転çšããå®¶åºã®é²çœãšããæ°ããããŒãã«é©çšããããšã§ãå
ã®è£œåãšã¯ç°ãªãæ°ãã補åãšããŸãã",
"sourceBoundary": "芳å¯ãããäºå®ãšããŠã`nasa_spaceapps_2025_pureflow`ã®ã³ã³ã»ããïŒèšèšææ³ãã¹ãã¬ã¹äžã§ãã¹ãããå埩åã®ã®ã£ãããå¯èŠåããæ§é ïŒã¯å©çšå¯èœã§ããæ¬ èœããŠããæ
å ±ïŒã³ãŒãå®è£
詳现ãªã©ïŒãæšè«ãããäºå®ïŒå
·äœçãªããŒã¿ãããŒãªã©ïŒãããããã芳å¯ãããäºå®ã§ãããã®ããã«äž»åŒµããŠã¯ãªããŸããã",
"missingSourceEvidence": [
"codeUrl missing",
"UI evidence unavailable",
"live data not used"
]
},
"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_h_20260707T190225",
"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 simulation results area is empty, showing a message to start the trace.",
"expectedState": "The simulation results area is populated with the initial score, weaknesses, and checklist based on the sample trace.",
"visibleEvidence": [
"ã¬ãžãªãšã³ã¹ã¹ã³ã¢",
"45",
"/ 100",
"çŸåšã®åŒ±ç¹",
"é£²çšæ°Žäžè¶³",
"飿åèã®äžè¶³",
"æ
å ±åéææ®µã®æ¬ åŠ"
],
"proofSelectors": [
"button[data-proof='replay-trace-button']",
"[data-proof='simulation-results']",
"[data-proof='resilience-score']",
"[data-proof='weakness-list']"
],
"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": [
"ãªã¢ã«ã¿ã€ã ããŒã¿",
"ã©ã€ãçµ±åä¿èšŒ",
"èªåå€éšå
Ž",
"æ¬çªç°å¢å¯Ÿå¿API",
"æ£ç¢ºãªäºæž¬",
"ããªãã®å®å
šãä¿èšŒããŸã"
]
},
"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."
]
}/* eslint-disable @next/next/no-img-element */
'use client';
import { useState, useEffect } from 'react';
import { trace } from '../data/sample-trace';
import { input } from '../data/sample-input';
// Local type declarations - kept for consistency with original file's approach
type FamilyConfiguration = {
adults: number;
children: number;
elderly: number;
pets: string[];
houseType: string;
};
type DisasterScenario = {
scenarioId: string;
name: string;
description: string;
};
type PreparednessItem = {
id: string;
name: string;
checked: boolean;
scoreEffect: number;
resolvesWeakness?: string;
};
type ResilienceReport = {
totalScore: number;
maxScore: number;
weaknesses: string[];
};
export default function Home() {
const [step, setStep] = useState(0);
const [report, setReport] = useState<ResilienceReport | null>(null);
const [checklist, setChecklist] = useState<PreparednessItem[]>(trace.initialChecklist);
const pipelineSteps = [
{ name: '1. å®¶ææ§æãšã·ããªãªãèšå®' },
{ name: '2. åæã¬ãžãªãšã³ã¹ãèšç®' },
{ name: '3. 匱ç¹ãç¹å®' },
{ name: 'å®äº' }
];
const handleReplay = () => {
setChecklist(trace.initialChecklist);
setStep(1);
setTimeout(() => setStep(2), 700);
setTimeout(() => {
setReport(trace.steps.step1_initialReport.output);
setStep(3);
}, 1400);
setTimeout(() => setStep(4), 2100);
};
const handleCheckItem = (itemId: string) => {
const newChecklist = checklist.map(item =>
item.id === itemId ? { ...item, checked: !item.checked } : item
);
setChecklist(newChecklist);
// In a real app, this would re-run the pipeline.
// Here, we simulate the result from the trace file based on specific checks.
const checkedIds = new Set(newChecklist.filter(i => i.checked).map(i => i.id));
if (checkedIds.has('food') && checkedIds.has('water')) {
setReport(trace.steps.step3_foodAndWaterCheckedReport.output);
} else if (checkedIds.has('food')) {
setReport(trace.steps.step2_foodCheckedReport.output);
} else {
setReport(trace.steps.step1_initialReport.output);
}
};
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: '2rem', display: 'flex', alignItems: 'center' }}>
<span style={{ marginRight: '10px' }}>ð¡ïž</span>ReadyCheck Sim
</h1>
<p>ããªãã®å®¶æãåé»3æ¥ã§çãæ®ããïŒåãããã§ãã¯ãããã³ã«çåã¹ã³ã¢ãäžãããå®¶åºçšé²çœã·ãã¥ã¬ãŒã¿ãŒã</p>
</header>
<main>
<div style={{ display: 'grid', gridTemplateColumns: '250px 1fr', gap: '2rem' }}>
<div>
<h2 style={{ fontSize: '1.2rem', marginBottom: '1rem' }}>å®è¡ãã€ãã©ã€ã³</h2>
<ul style={{ listStyle: 'none', padding: 0, margin: 0 }}>
{pipelineSteps.map((s, i) => (
<li key={s.name} style={{ padding: '0.5rem', background: step > i ? '#e6fffa' : '#f4f4f5', marginBottom: '0.5rem', borderRadius: '4px' }}>
{step > i ? 'â
' : 'â³'} {s.name}
</li>
))}
</ul>
<button
onClick={handleReplay}
disabled={step > 0 && step < 4}
data-proof="replay-trace-button"
style={{ width: '100%', padding: '0.75rem', marginTop: '1rem', background: '#3b82f6', color: 'white', border: 'none', borderRadius: '4px', cursor: 'pointer', fontSize: '1rem' }}
>
ãµã³ãã«å®è¡ãã¬ãŒã¹ãåç
</button>
</div>
<div data-proof="simulation-results">
{step < 2 ? (
<div style={{ background: '#f4f4f5', padding: '2rem', borderRadius: '4px', textAlign: 'center', height: '100%' }}>
<p>å®è¡ãã¬ãŒã¹ãåçããŠã·ãã¥ã¬ãŒã·ã§ã³ãéå§ããŠãã ããã</p>
</div>
) : (
<div>
<div style={{ background: '#f4f4f5', padding: '1rem', borderRadius: '4px', marginBottom: '1rem' }}>
<h3 style={{ marginTop: 0 }}>ã·ãã¥ã¬ãŒã·ã§ã³èšå®</h3>
<p><strong>å®¶ææ§æ:</strong> 倧人{input.family.adults}, åäŸ{input.family.children}, ããã({input.family.pets.join(', ')})</p>
<p><strong>çœå®³ã·ããªãª:</strong> {trace.scenario.name}</p>
</div>
<div style={{ background: '#fffbeb', border: '1px solid #fde68a', padding: '1rem', borderRadius: '4px', marginBottom: '1rem' }}>
<h3 style={{ marginTop: 0, color: '#ca8a04' }}>ã¬ãžãªãšã³ã¹ã¹ã³ã¢</h3>
<div data-proof="resilience-score" style={{ fontSize: '3rem', fontWeight: 'bold', textAlign: 'center' }}>
{report?.totalScore} <span style={{ fontSize: '1.5rem' }}>/ {report?.maxScore}</span>
</div>
</div>
<div style={{ background: '#fef2f2', border: '1px solid #fecaca', padding: '1rem', borderRadius: '4px', marginBottom: '1rem' }}>
<div style={{ display: 'flex', gap: '2rem', alignItems: 'flex-start' }}>
<div style={{ flex: '1' }}>
<h3 style={{ marginTop: 0, color: '#dc2626' }}>çŸåšã®åŒ±ç¹</h3>
<ul data-proof="weakness-list">
{report?.weaknesses.length === 0 ? (
<li>å
šãŠã®åŒ±ç¹ãè§£æ¶ãããŸããïŒð</li>
) : (
report?.weaknesses.map(w => <li key={w}>{w}</li>)
)}
</ul>
</div>
<div data-proof="house-map" style={{
position: 'relative',
width: '180px',
height: '150px',
border: '2px solid #ccc',
borderRadius: '5px',
background: '#fff',
flexShrink: 0,
marginRight: 'auto',
marginTop: '0.5rem'
}}>
{/* Roof */}
<div style={{
position: 'absolute',
top: '-20px', left: '10px',
width: '0', height: '0',
borderLeft: '80px solid transparent',
borderRight: '80px solid transparent',
borderBottom: '20px solid #ccc'
}}></div>
{/* Water Area */}
<div style={{
position: 'absolute', top: '15px', left: '15px',
width: '60px', height: '40px',
background: report?.weaknesses.includes('é£²çšæ°Žäžè¶³') ? '#ffdddd' : '#f0f0f0',
border: `1px solid ${report?.weaknesses.includes('é£²çšæ°Žäžè¶³') ? '#dc2626' : '#ccc'}`,
borderRadius: '3px',
display: 'flex', justifyContent: 'center', alignItems: 'center', fontSize: '1rem',
color: report?.weaknesses.includes('é£²çšæ°Žäžè¶³') ? '#dc2626' : '#333'
}}>ð§æ°Ž</div>
{/* Food Area */}
<div style={{
position: 'absolute', top: '15px', right: '15px',
width: '60px', height: '40px',
background: report?.weaknesses.includes('飿åèã®äžè¶³') ? '#ffdddd' : '#f0f0f0',
border: `1px solid ${report?.weaknesses.includes('飿åèã®äžè¶³') ? '#dc2626' : '#ccc'}`,
borderRadius: '3px',
display: 'flex', justifyContent: 'center', alignItems: 'center', fontSize: '1rem',
color: report?.weaknesses.includes('飿åèã®äžè¶³') ? '#dc2626' : '#333'
}}>ð¥«é£</div>
{/* Power Area */}
<div style={{
position: 'absolute', bottom: '15px', left: '15px',
width: '60px', height: '40px',
background: report?.weaknesses.includes('éåžžçšé»æºã®æ¬ åŠ') ? '#ffdddd' : '#f0f0f0',
border: `1px solid ${report?.weaknesses.includes('éåžžçšé»æºã®æ¬ åŠ') ? '#dc2626' : '#ccc'}`,
borderRadius: '3px',
display: 'flex', justifyContent: 'center', alignItems: 'center', fontSize: '1rem',
color: report?.weaknesses.includes('éåžžçšé»æºã®æ¬ åŠ') ? '#dc2626' : '#333'
}}>ðé»</div>
{/* Info Area */}
<div style={{
position: 'absolute', bottom: '15px', right: '15px',
width: '60px', height: '40px',
background: report?.weaknesses.includes('æ
å ±åéææ®µã®æ¬ åŠ') ? '#ffdddd' : '#f0f0f0',
border: `1px solid ${report?.weaknesses.includes('æ
å ±åéææ®µã®æ¬ åŠ') ? '#dc2626' : '#ccc'}`,
borderRadius: '3px',
display: 'flex', justifyContent: 'center', alignItems: 'center', fontSize: '1rem',
color: report?.weaknesses.includes('æ
å ±åéææ®µã®æ¬ åŠ') ? '#dc2626' : '#333'
}}>ð»æ
å ±</div>
</div>
</div>
</div>
<div>
<h3 style={{ marginTop: '2rem' }}>åèåãã§ãã¯ãªã¹ã</h3>
{checklist.map(item => (
<div key={item.id} style={{ display: 'flex', alignItems: 'center', background: '#f9fafb', padding: '0.75rem', marginBottom: '0.5rem', borderRadius: '4px' }}>
<input
type="checkbox"
id={item.id}
data-proof={`checklist-item-${item.id}`}
checked={item.checked}
onChange={() => handleCheckItem(item.id)}
style={{ marginRight: '0.75rem', transform: 'scale(1.2)' }}
/>
<label htmlFor={item.id}>{item.name}</label>
</div>
))}
</div>
</div>
)}
</div>
</div>
</main>
</div>
);
}
Run context. ããã§ã¯ç®¡ç倿ã«å¿ èŠãªRunã®èŠçŽã ãã衚瀺ããŸããpromptãinputãresponseãmetadataJsonã®å šæã¯é垞確èªããå€ãã å¿ èŠãªå Žåã ãRun詳现ãã°ã§ç¢ºèªããŸãã
- Run ID
- run_selfdirected_agent_h_20260707T190225
- èµ·åçš®å¥
- llm_pipeline
- èªåŸåºŠ
- L1_assisted
- å®è¡è
- system / LLM Pipeline Publisher
- éå§
- 2026/7/8 04:13:05 JST
- å®äº
- 2026/7/8 04:13:05 JST
- çæ / å ¬é / 倱æ
- 1 / 1 / 0
- 蚌跡件æ°
- 8 events / 28 artifacts / 40 checks
LLM pipeline run for selfdirected_agent_h_20260707T190225. Published 0 project(s).
