Internal Product Info
GuardianHeat
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.
fail / high_risk_topic: High-risk topic flag detected: medical. Human review is required before publish or feature decisions.
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 / cb981b4811c115772dfac69a276532d77e85ce255a7e50543e8ccfc1685c1ac1
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/demo-placeholder.md
interaction_proof / 2.1KB / d1dc5f97a8ca2d62a3d939b0e08bc6b20ca031a2d71aa9279b831ec04975ada7
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/validation/interaction-proof.json
metadata / 21.6KB / 867c47f5f3448327d1764ba121f17a2d251a1e3443db833a7b15d10bd238787f
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/metadata.json
mvp_contract_v2 / 13.3KB / ece68f13778aec8cfdc32b0f1dbc54fcb798d465070d9904ac63f8ae365a0987
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/validation/mvp-contract-v2.json
product_logo / 491B / f994085ee0b7571043c93a71a4a13231a0db589e6840dcca35edf9a06839af15
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/mockups/product-logo.svg
product_showcase / 2.1MB / a61a9d7c80fd32ddfc75254636519bc2c43a90417307d2121dabaed51e281d5b
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/mockups/product-showcase.png
product_showcase / 2.8KB / d87d27798e148fdf7efc740e89d3ed08fffadb0ec2de1129d42c380fa4bc380a
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/mockups/product-showcase.svg
product_thumbnail / 1.5KB / 63d2b44d9478ff01b9a9f6532096e5fba8278a36d3bd4fe7f8a9d2cbab4a7563
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/mockups/product-thumbnail.svg
publisher_response / 852B / 50da2526cec7a5ec76ad67298986d889a1875c95c5d79bc7c2f47189078051ee
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/publisher/response.json
publish_readiness / 6.0KB / b14df2ad376d527ed87810b65460a099f6f02319d45f59c4f103e6928b1ab146
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/publish-readiness.json
readme / 5.3KB / b7c331621aba183c6b24ebd36b667869c35495d9b62eaed334d310fcefe1455a
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/README.md
render_screenshot / 36.5KB / ee08a9cc4a8fa74d9bf0900cdfac1ffff62adb2c764eea49ebf941b40cb619b0
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/validation/render-verification.png
render_verification / 2.1KB / bb18449aea992135f19a702ef41684e1fdbbfbf5882a243677927ec4932358a7
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/validation/render-verification.json
self_review / 2.8KB / e32ff3593adefd2a8d8ccb6b061edf4ed2b6df01f8e62becb33522b4dae13f96
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/validation/self-review.json
source / 4.2KB / c51c45f8fc88a9195ba8ae29bffb70eb939ee1729544f15c6825e33ca7c653da
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/source/app/page.tsx
source / 3.1KB / 85ac53dc967acb82f45e46a57dbb6419e8e78806b102621529366998a1cb6645
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/source/core/gemini.ts
source / 1.7KB / 499a3912beb1ce35955aa9c98b86d6f6c47ff877805ac63599b1f7b601dabcd2
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/source/core/pipeline.ts
source / 792B / f6fb1b31d7d32e4e8783ee65c52d05f1b21f211c49527f634a88c663e837ae6b
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/source/core/steps/01_ingestStream.ts
source / 1.2KB / caf4f89812162cb25d6321c3af09996dc2efb317681a3bd9f775e13129324b95
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/source/core/steps/02_analyzeBehavior.ts
source / 1.2KB / b3b49bd92b51f64d0698c8f60096b102fdd72746c6e1db4f9f5e30d86f27e841
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/source/core/steps/03_generateAlert.ts
source / 764B / ffbcaf1d6d575d3af8ee86bbe7fb6575f32cb3fd26073d850686508ecd6482d8
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/source/core/steps/04_formatNotification.ts
source / 654B / 2c201e57a49f5e80dc2ee70d0a27b71bf63f032e11c7db290de3027f02f2eb7d
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/source/core/types.ts
source / 134B / 04dceaee4ed4aa56dc03c1b5266908dcdb97f2fbd7bf07530dcf5fdefdd7e8ea
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/source/data/sample-input.ts
source / 1.8KB / bacb27eb48c462c74e095271e7497e664d4885c8b1457cb8aceb1a60e7d0fb18
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/source/data/sample-trace.ts
source / 454B / 97cac218f14aff04e55a90cd790b13dba420d9a2e8a79d70657ea99529e936e8
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/source/manifest.json
source / 2.1KB / 0478238b60439628b904cf57a124bfc3e576b45c7d2c8d400db12a7f2f8c297a
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/source/metadata.json
source / 3.5KB / a34ffe76757cdb07269fc93f39878a51c338c46ac7704da2fcfbedf21d0626ab
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/source/README.md
source / 1.9KB / 13c8c072f15173b78f9965813a03ec5877fd1748ce63a6fda2f4de749891b9e9
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/source/validation/self-review.json
validation_summary / 3.7KB / df543a9ae7a8c224132ba86a23f2d3c6ce8313ef09a28f4aaa41664e15379636
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/validation-summary.json
visual_manifest / 9.3KB / 76da6176f107919c19b17cdb2868567cc273b7bbab697923679ddec91742c474
artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/materialized/selfdirected_agent_m_20260708T013738/mockups/visual-manifest.jsonREADME / metadata / self-reviewã®äžèº«ã衚瀺
# selfdirected_agent_m_20260708T013738
This directory is a materialized LLM BuildPlan artifact candidate.
## Readiness
- First screen value: éšå±ã«çœ®ããã¹ããããAIèŠå®ã圹ã«ãé¢ããå®¶æããããã®ç±äžçã®å
åãã蚌æ åçä»ãã§ãã¡æ©ãæ€ç¥ããããªãã®ã¹ããã«éç¥ããŸãã
- Core interaction: ãŠãŒã¶ãŒãããµã³ãã«å®è¡ãã¬ãŒã¹ãåçããã¿ã³ãæŒããšãAIã«ããèŠå®ããã€ãã©ã€ã³ãã·ãã¥ã¬ãŒããããç±äžçã®å
åãæ€ç¥ããã¢ã©ãŒãã蚌æ ã®ã¹ãããã·ã§ãããšå
±ã«è¡šç€ºãããŸãã
- State change: ãã¿ã³ãæŒãåã¯ãå®è¡åŸ
ã¡ãã®ç¶æ
ã§ãããæŒããåŸã¯ãã€ãã©ã€ã³ãé²è¡ããçµæã³ã³ãœãŒã«ã«å
·äœçãªã¢ã©ãŒãæ
å ±ã衚瀺ãããŸãã
- Inspectable output: AIãçæãããç±äžçã®å
åãã«é¢ããã¢ã©ãŒãïŒæ€ç¥å
容ãæå»ãæ·±å»åºŠã蚌æ ã¹ãããã·ã§ããïŒãç»é¢ã«è¡šç€ºãããŸãã
- Static data boundary: 衚瀺ããããã¹ãŠã®æ
å ±ã¯ãå®éã®ã«ã¡ã©ãAIã¢ãã«ããçæããããã®ã§ã¯ãªããäºåã«çšæãããéçãªãµã³ãã«ããŒã¿ã«åºã¥ããŠããŸãã
- Remaining weakness: ä»ã¯ãµã³ãã«åçã ãã§ãããæ¬¡ã¯å®éã®ã«ã¡ã©æ åããªã¢ã«ã¿ã€ã ã§åŠçãã宀枩ã»ã³ãµãŒãšã飿ºãããŠæ€ç¥ç²ŸåºŠãäžãããã§ããè€æ°æ ç¹ã®äžæ¬èŠå®ããŸã§åºããå€ã®äžå®ãè§£æ¶ããå®çªã¢ããªãç®æããŸãã
## Interaction Proof Plan
- Primary action: ãµã³ãã«å®è¡ãã¬ãŒã¹ãåç
- Initial state: çµæã³ã³ãœãŒã«ã«ã¯ãå®è¡åŸ
ã¡ããšè¡šç€ºããããã€ãã©ã€ã³ã®åã¹ãããã¯æªå®è¡ã®ç¶æ
ã
- Expected state: å®è¡ãã¬ãŒã¹ãåçãããã³ã³ãœãŒã«ã«ç±äžçã®å
åãæ€ç¥ããã¢ã©ãŒãã衚瀺ãããã
- Visible evidence: â
è¡ååæ (VLM); ðš æ°ããã¢ã©ãŒã; æ·±å»åºŠ:; èŠç¢ºèª; æ€ç¥å
容: ãªãã³ã°ã§é·æéåããããã£ããããŠããæ§åãæ€ç¥ããŸããã
## 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ã«ããæ€ç¥ã¯ã·ãã¥ã¬ãŒãããããã®ã§ãããå®éã®APIåŒã³åºãã¯è¡ãããŸããã; å»ç蚺æã代æ¿ãããã®ã§ã¯ãããŸããããããŸã§äººéã®å€æãè£å©ããããã®æ
å ±æäŸã§ãã
- External integrations: Google Gemini API (VLM)=not_connected
- Mock fidelity: ãã€ãã©ã€ã³ã®åã¹ããããé æ¬¡æåããããããŒãã¹; VLMãç±äžçã®å
åïŒé·æéã®äžåïŒãæ€ç¥ããã¢ã©ãŒããçæãããã·ããªãª
## Files
- `source/README.md`: è£œåæŠèŠãäœ¿ãæ¹ãæè¡æ§æãããã³ãã¢ã®éçã«ã€ããŠèª¬æããŸãã
- `source/metadata.json`: Prodiaãã©ãããã©ãŒã ããããžã§ã¯ããã€ã³ããã¯ã¹ãã衚瀺ããããã«äœ¿çšããã¡ã¿ããŒã¿ã§ãã
- `source/manifest.json`: ãã«ãã«å«ãŸãããã¹ãŠã®ãã¡ã€ã«ã®ãªã¹ãã§ãã
- `source/app/page.tsx`: 補åã®ã¡ã€ã³UIããµã³ãã«å®è¡ãã¬ãŒã¹ãåçããçµæã衚瀺ããŸãã
- `source/core/types.ts`: ã³ã¢ããžãã¯ã§å
±æãããåå®çŸ©ã§ãã
- `source/core/pipeline.ts`: åŠçã¹ãããå
šäœãç·šæãããã€ãã©ã€ã³ããžãã¯ã§ãã
- `source/core/gemini.ts`: Google Gemini APIãšã®éä¿¡ãã¿ãŒã³ãå®çŸ©ããŸãã
- `source/core/steps/01_ingestStream.ts`: ãã€ãã©ã€ã³ã®ç¬¬1ã¹ããã: æ åã®åã蟌ã¿ãšååŠçã
- `source/core/steps/02_analyzeBehavior.ts`: ãã€ãã©ã€ã³ã®ç¬¬2ã¹ããã: VLMã«ããè¡ååæã
- `source/core/steps/03_generateAlert.ts`: ãã€ãã©ã€ã³ã®ç¬¬3ã¹ããã: ã¢ã©ãŒãæ
å ±ã®çæã
- `source/core/steps/04_formatNotification.ts`: ãã€ãã©ã€ã³ã®ç¬¬4ã¹ããã: 衚瀺ã»éç¥çšã®ããŒã¿æŽåœ¢ã
- `source/data/sample-input.ts`: ãã€ãã©ã€ã³ã®ãµã³ãã«å
¥åããŒã¿ã§ãã
- `source/data/sample-trace.ts`: UIãã¢ãåçããããã€ãã©ã€ã³å®è¡ã®éçãã¬ãŒã¹ããŒã¿ã§ãã
- `source/validation/self-review.json`: Prodiaã®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_m_20260708T013738",
"generatedAt": "2026-07-08T01:51:39.500Z",
"generatedFrom": {
"input": "artifacts/llm-pipeline-runs/run_selfdirected_agent_m_20260708T013738/builder/response.json",
"requirementSpecId": "req_m_20260708_03",
"framework": "next_static_artifact"
},
"sourceFiles": [
{
"relativePath": "source/README.md",
"purpose": "è£œåæŠèŠãäœ¿ãæ¹ãæè¡æ§æãããã³ãã¢ã®éçã«ã€ããŠèª¬æããŸãã",
"sizeBytes": 3594,
"checksum": "a34ffe76757cdb07269fc93f39878a51c338c46ac7704da2fcfbedf21d0626ab",
"generatedFrom": "README.md"
},
{
"relativePath": "source/metadata.json",
"purpose": "Prodiaãã©ãããã©ãŒã ããããžã§ã¯ããã€ã³ããã¯ã¹ãã衚瀺ããããã«äœ¿çšããã¡ã¿ããŒã¿ã§ãã",
"sizeBytes": 2151,
"checksum": "da857fceebba784c54bed5c8452e65b7deca2d90ab57025e5570f7e69e4145bf",
"generatedFrom": "metadata.json"
},
{
"relativePath": "source/manifest.json",
"purpose": "ãã«ãã«å«ãŸãããã¹ãŠã®ãã¡ã€ã«ã®ãªã¹ãã§ãã",
"sizeBytes": 453,
"checksum": "344330f735e135d9f872e070be9d4d470310312eb032fa16561e456e6523752e",
"generatedFrom": "manifest.json"
},
{
"relativePath": "source/app/page.tsx",
"purpose": "補åã®ã¡ã€ã³UIããµã³ãã«å®è¡ãã¬ãŒã¹ãåçããçµæã衚瀺ããŸãã",
"sizeBytes": 4284,
"checksum": "c51c45f8fc88a9195ba8ae29bffb70eb939ee1729544f15c6825e33ca7c653da",
"generatedFrom": "source/app/page.tsx"
},
{
"relativePath": "source/core/types.ts",
"purpose": "ã³ã¢ããžãã¯ã§å
±æãããåå®çŸ©ã§ãã",
"sizeBytes": 654,
"checksum": "2c201e57a49f5e80dc2ee70d0a27b71bf63f032e11c7db290de3027f02f2eb7d",
"generatedFrom": "source/core/types.ts"
},
{
"relativePath": "source/core/pipeline.ts",
"purpose": "åŠçã¹ãããå
šäœãç·šæãããã€ãã©ã€ã³ããžãã¯ã§ãã",
"sizeBytes": 1791,
"checksum": "499a3912beb1ce35955aa9c98b86d6f6c47ff877805ac63599b1f7b601dabcd2",
"generatedFrom": "source/core/pipeline.ts"
},
{
"relativePath": "source/core/gemini.ts",
"purpose": "Google Gemini APIãšã®éä¿¡ãã¿ãŒã³ãå®çŸ©ããŸãã",
"sizeBytes": 3127,
"checksum": "85ac53dc967acb82f45e46a57dbb6419e8e78806b102621529366998a1cb6645",
"generatedFrom": "source/core/gemini.ts"
},
{
"relativePath": "source/core/steps/01_ingestStream.ts",
"purpose": "ãã€ãã©ã€ã³ã®ç¬¬1ã¹ããã: æ åã®åã蟌ã¿ãšååŠçã",
"sizeBytes": 792,
"checksum": "f6fb1b31d7d32e4e8783ee65c52d05f1b21f211c49527f634a88c663e837ae6b",
"generatedFrom": "source/core/steps/01_ingestStream.ts"
},
{
"relativePath": "source/core/steps/02_analyzeBehavior.ts",
"purpose": "ãã€ãã©ã€ã³ã®ç¬¬2ã¹ããã: VLMã«ããè¡ååæã",
"sizeBytes": 1236,
"checksum": "caf4f89812162cb25d6321c3af09996dc2efb317681a3bd9f775e13129324b95",
"generatedFrom": "source/core/steps/02_analyzeBehavior.ts"
},
{
"relativePath": "source/core/steps/03_generateAlert.ts",
"purpose": "ãã€ãã©ã€ã³ã®ç¬¬3ã¹ããã: ã¢ã©ãŒãæ
å ±ã®çæã",
"sizeBytes": 1209,
"checksum": "b3b49bd92b51f64d0698c8f60096b102fdd72746c6e1db4f9f5e30d86f27e841",
"generatedFrom": "source/core/steps/03_generateAlert.ts"
},
{
"relativePath": "source/core/steps/04_formatNotification.ts",
"purpose": "ãã€ãã©ã€ã³ã®ç¬¬4ã¹ããã: 衚瀺ã»éç¥çšã®ããŒã¿æŽåœ¢ã",
"sizeBytes": 764,
"checksum": "ffbcaf1d6d575d3af8ee86bbe7fb6575f32cb3fd26073d850686508ecd6482d8",
"generatedFrom": "source/core/steps/04_formatNotification.ts"
},
{
"relativePath": "source/data/sample-input.ts",
"purpose": "ãã€ãã©ã€ã³ã®ãµã³ãã«å
¥åããŒã¿ã§ãã",
"sizeBytes": 134,
"checksum": "04dceaee4ed4aa56dc03c1b5266908dcdb97f2fbd7bf07530dcf5fdefdd7e8ea",
"generatedFrom": "source/data/sample-input.ts"
},
{
"relativePath": "source/data/sample-trace.ts",
"purpose": "UIãã¢ãåçããããã€ãã©ã€ã³å®è¡ã®éçãã¬ãŒã¹ããŒã¿ã§ãã",
"sizeBytes": 1846,
"checksum": "bacb27eb48c462c74e095271e7497e664d4885c8b1457cb8aceb1a60e7d0fb18",
"generatedFrom": "source/data/sample-trace.ts"
},
{
"relativePath": "source/validation/self-review.json",
"purpose": "Prodiaã®MVPåºæºã«å¯Ÿããèªå·±è©äŸ¡ã§ãã",
"sizeBytes": 1909,
"checksum": "d01b0de4069addc1bfa17e983a8270bf8c1e0441c19e890c167cd51e1bdff8ee",
"generatedFrom": "validation/self-review.json"
}
],
"demo": {
"path": "demo-placeholder.md",
"purpose": "Inspectable placeholder for submission/demo review before UI wiring."
},
"readiness": {
"firstScreenValue": "éšå±ã«çœ®ããã¹ããããAIèŠå®ã圹ã«ãé¢ããå®¶æããããã®ç±äžçã®å
åãã蚌æ åçä»ãã§ãã¡æ©ãæ€ç¥ããããªãã®ã¹ããã«éç¥ããŸãã",
"coreInteraction": "ãŠãŒã¶ãŒãããµã³ãã«å®è¡ãã¬ãŒã¹ãåçããã¿ã³ãæŒããšãAIã«ããèŠå®ããã€ãã©ã€ã³ãã·ãã¥ã¬ãŒããããç±äžçã®å
åãæ€ç¥ããã¢ã©ãŒãã蚌æ ã®ã¹ãããã·ã§ãããšå
±ã«è¡šç€ºãããŸãã",
"stateChange": "ãã¿ã³ãæŒãåã¯ãå®è¡åŸ
ã¡ãã®ç¶æ
ã§ãããæŒããåŸã¯ãã€ãã©ã€ã³ãé²è¡ããçµæã³ã³ãœãŒã«ã«å
·äœçãªã¢ã©ãŒãæ
å ±ã衚瀺ãããŸãã",
"inspectableOutput": "AIãçæãããç±äžçã®å
åãã«é¢ããã¢ã©ãŒãïŒæ€ç¥å
容ãæå»ãæ·±å»åºŠã蚌æ ã¹ãããã·ã§ããïŒãç»é¢ã«è¡šç€ºãããŸãã",
"staticDataBoundary": "衚瀺ããããã¹ãŠã®æ
å ±ã¯ãå®éã®ã«ã¡ã©ãAIã¢ãã«ããçæããããã®ã§ã¯ãªããäºåã«çšæãããéçãªãµã³ãã«ããŒã¿ã«åºã¥ããŠããŸãã",
"remainingWeakness": "ä»ã¯ãµã³ãã«åçã ãã§ãããæ¬¡ã¯å®éã®ã«ã¡ã©æ åããªã¢ã«ã¿ã€ã ã§åŠçãã宀枩ã»ã³ãµãŒãšã飿ºãããŠæ€ç¥ç²ŸåºŠãäžãããã§ããè€æ°æ ç¹ã®äžæ¬èŠå®ããŸã§åºããå€ã®äžå®ãè§£æ¶ããå®çªã¢ããªãç®æããŸãã"
},
"interestingness": "å€ãã®èŠå®ãã«ã¡ã©ãäºåŸçãªèšé²ã«çãŸãäžããã®ãGuardianHeatãã¯VLMïŒèŠèŠèšèªã¢ãã«ïŒãçšããŠãç±äžçã®å
åããšããäºé²å¯èœãªãªã¹ã¯ãäºåã«æ€ç¥ããç¹ã«æ°èŠæ§ããããŸããåãªãç°åžžæ€ç¥ã§ã¯ãªãããã£ããããŠããçã®å
·äœçãªè¡åå€åãæãã蚌æ åçãšå
±ã«éç¥ããããšã§ãæŒ ç¶ãšããäžå®ãå
·äœçãªè¡åã«å€ããæå©ããããŸãããã©ã€ãã·ãŒã«é
æ
®ãããããŸã§äººéã®å€æãä¿ããæ°ã¥ããã®æäŸã«åŸ¹ããèšèšã¯ãéå°ãªAIãžã®æåŸ
ãšäžç·ãç»ããå°ã«è¶³ã®ã€ããåœ¢ã§ææ°æè¡ã®äŸ¡å€ãå±ããããšãã詊ã¿ã§ãã",
"mvpContract": {
"firstScreenValue": "éšå±ã«çœ®ããã¹ããããAIèŠå®ã圹ã«ãé¢ããå®¶æããããã®ç±äžçã®å
åãã蚌æ åçä»ãã§ãã¡æ©ãæ€ç¥ããããªãã®ã¹ããã«éç¥ããŸãã",
"coreInteraction": "ãŠãŒã¶ãŒãããµã³ãã«å®è¡ãã¬ãŒã¹ãåçããã¿ã³ãæŒããšãAIã«ããèŠå®ããã€ãã©ã€ã³ãã·ãã¥ã¬ãŒããããç±äžçã®å
åãæ€ç¥ããã¢ã©ãŒãã蚌æ ã®ã¹ãããã·ã§ãããšå
±ã«è¡šç€ºãããŸãã",
"stateChange": "ãã¿ã³ãæŒãåã¯ãå®è¡åŸ
ã¡ãã®ç¶æ
ã§ãããæŒããåŸã¯ãã€ãã©ã€ã³ãé²è¡ããçµæã³ã³ãœãŒã«ã«å
·äœçãªã¢ã©ãŒãæ
å ±ã衚瀺ãããŸãã",
"inspectableOutput": "AIãçæãããç±äžçã®å
åãã«é¢ããã¢ã©ãŒãïŒæ€ç¥å
容ãæå»ãæ·±å»åºŠã蚌æ ã¹ãããã·ã§ããïŒãç»é¢ã«è¡šç€ºãããŸãã",
"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": "éšå±ã«çœ®ããã¹ããããAIèŠå®ã圹ã«ãé¢ããå®¶æããããã®ç±äžçã®å
åãã蚌æ åçä»ãã§ãã¡æ©ãæ€ç¥ããããªãã®ã¹ããã«éç¥ããŸãã",
"coreInteraction": "ãŠãŒã¶ãŒãããµã³ãã«å®è¡ãã¬ãŒã¹ãåçããã¿ã³ãæŒããšãAIã«ããèŠå®ããã€ãã©ã€ã³ãã·ãã¥ã¬ãŒããããç±äžçã®å
åãæ€ç¥ããã¢ã©ãŒãã蚌æ ã®ã¹ãããã·ã§ãããšå
±ã«è¡šç€ºãããŸãã",
"stateChange": "ãã¿ã³ãæŒãåã¯ãå®è¡åŸ
ã¡ãã®ç¶æ
ã§ãããæŒããåŸã¯ãã€ãã©ã€ã³ãé²è¡ããçµæã³ã³ãœãŒã«ã«å
·äœçãªã¢ã©ãŒãæ
å ±ã衚瀺ãããŸãã",
"inspectableOutput": "AIãçæãããç±äžçã®å
åãã«é¢ããã¢ã©ãŒãïŒæ€ç¥å
容ãæå»ãæ·±å»åºŠã蚌æ ã¹ãããã·ã§ããïŒãç»é¢ã«è¡šç€ºãããŸãã",
"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",
"AIã«ãã確å®èšºæãå»çè¡çºã®ä»£æ¿",
"ãªã¢ã«ã¿ã€ã ãªæ åã¹ããªãŒãã³ã°"
],
"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 (VLM)",
"intendedUse": "`gemini-2.5-flash`ã®ãããªVLMïŒèŠèŠèšèªã¢ãã«ïŒã䜿ããã«ã¡ã©æ åããç±äžçã®å
åãšãªãããè¡åãã¿ãŒã³ïŒé·æéã®äžåãç°åžžãªå§¿å¢ãªã©ïŒãæ€ç¥ããŸãã",
"dataFlow": "ã«ã¡ã©æ åãã¬ãŒã -> Gemini API -> æ€ç¥çµæ (JSON)",
"authRequirement": "api_key",
"currentImplementation": "not_connected",
"sampleDataPath": "source/data/sample-trace.ts",
"riskNotes": [
"å®éã®APIåŒã³åºãã¯è¡ãããŸããããã¢ã¯éçãªãµã³ãã«ããŒã¿ã§åäœããŸãã",
"VLMã®ç²ŸåºŠã¯ããã³ãããã¢ãã«ã®æ§èœã«äŸåãã誀æ€ç¥ãèŠéãã®å¯èœæ§ããããŸãã",
"APIã®å©çšã«ã¯ã³ã¹ããçºçããŸãã"
]
}
],
"runtimeBoundary": {
"networkCalls": "none",
"secrets": "none",
"externalWrites": "none"
},
"mvpComplexityBudget": {
"maxScreens": 1,
"maxPrimaryActions": 1,
"maxSourceFiles": 15,
"maxNewDependencies": 0,
"allowDatabase": false
},
"integrationAssumptions": [
{
"service": "Google Gemini API (VLM)",
"verificationStatus": "official_docs_checked",
"unavailableOrUnknown": [
"æ¬çªç°å¢ã§ã®æ£ç¢ºãªã¬ã€ãã³ã·ãŒãšã¹ã«ãŒããã",
"倧éã®æ åã¹ããªãŒã ãåŠçããå Žåã®APIã³ã¹ã"
],
"rateLimitRisk": "medium",
"costRisk": "medium",
"termsRisk": "low"
}
],
"mockFidelity": {
"samplePayloadPath": "source/data/sample-trace.ts",
"simulatedBehaviors": [
"ãã€ãã©ã€ã³ã®åã¹ããããé æ¬¡æåããããããŒãã¹",
"VLMãç±äžçã®å
åïŒé·æéã®äžåïŒãæ€ç¥ããã¢ã©ãŒããçæãããã·ããªãª"
],
"omittedBehaviors": [
"APIåŒã³åºãæã®ãããã¯ãŒã¯ãšã©ãŒãé
å»¶",
"VLMãäœãæ€ç¥ããªãã±ãŒã¹ïŒç°åžžãªãïŒ",
"VLMã誀æ€ç¥ããã±ãŒã¹ïŒèª€å ±ïŒ",
"èªèšŒïŒAPIããŒïŒã®ãšã©ãŒãã³ããªã³ã°"
],
"failureCasesIncluded": [
"empty result"
]
},
"claimBoundary": {
"publicCopyMustSay": [
"ãã®è£œåã¯ã³ã³ã»ããå®èšŒãã¢ã§ãã",
"衚瀺ãããããŒã¿ã¯ãäºåã«çšæããããµã³ãã«ããŒã¿ã§ãã",
"AIã«ããæ€ç¥ã¯ã·ãã¥ã¬ãŒãããããã®ã§ãããå®éã®APIåŒã³åºãã¯è¡ãããŸããã",
"å»ç蚺æã代æ¿ãããã®ã§ã¯ãããŸããããããŸã§äººéã®å€æãè£å©ããããã®æ
å ±æäŸã§ãã"
],
"publicCopyMustNotSay": [
"ãªã¢ã«ã¿ã€ã ã§å®¶æã®å®å
šãèŠå®ããŸãã",
"ç±äžçã100%確å®ã«æ€ç¥ããŸãã",
"AIãèªåã§å¥åº·ç¶æ
ã蚺æããŸãã",
"ç·æ¥éå ±ãµãŒãã¹ãšé£æºããŠããŸãã"
]
},
"renderVerification": {
"required": true,
"checks": [
"render",
"click",
"state_change",
"screenshot"
]
},
"humanReviewTriggers": [
"å»çã»å¥åº·ã«é¢é£ããã¯ã¬ãŒã ãå«ãããã人éã®ã¬ãã¥ãŒãå¿
èŠã§ãã"
]
},
"interactionProofPlan": {
"primaryAction": "ãµã³ãã«å®è¡ãã¬ãŒã¹ãåç",
"initialState": "çµæã³ã³ãœãŒã«ã«ã¯ãå®è¡åŸ
ã¡ããšè¡šç€ºããããã€ãã©ã€ã³ã®åã¹ãããã¯æªå®è¡ã®ç¶æ
ã",
"expectedState": "å®è¡ãã¬ãŒã¹ãåçãããã³ã³ãœãŒã«ã«ç±äžçã®å
åãæ€ç¥ããã¢ã©ãŒãã衚瀺ãããã",
"visibleEvidence": [
"â
è¡ååæ (VLM)",
"ðš æ°ããã¢ã©ãŒã",
"æ·±å»åºŠ:",
"èŠç¢ºèª",
"æ€ç¥å
容: ãªãã³ã°ã§é·æéåããããã£ããããŠããæ§åãæ€ç¥ããŸããã"
],
"proofSelectors": [
"button[data-proof='replay-trace']",
"main[data-proof='results-console']",
"div[data-proof='alert-item']"
],
"requiredSourceFiles": [
"source/app/page.tsx",
"source/core/pipeline.ts",
"source/data/sample-trace.ts"
],
"manualFallbackReason": ""
},
"generatedOutput": {
"title": "GuardianHeat",
"oneLiner": "éšå±ã«çœ®ããã¹ããã«ã¡ã©ã§é¢ããå®¶æãããããAIãèŠå®ããç±äžçã®å
åïŒãã£ããããŠããçïŒãæ€ç¥ãããšèšŒæ ã®ã¹ãããã·ã§ããä»ãã§éç¥ããŸãã",
"artifactShape": "board",
"templatePatternId": "ops_steward_console",
"surfacePattern": "social_civic_tool",
"aiMechanismPattern": "multi_source_synthesis"
},
"implementationNotes": [
"äœãæ(kasumi)ã®ãå°ã«è¶³ã®ã€ãã解説ããšããææ³ãåæ ããUIã¯æŽŸæãªæŒåºãé¿ããåŠçãã€ãã©ã€ã³ãšçµæãæç¢ºã«ãããã³ã³ãœãŒã«åœ¢åŒãæ¡çšããŸããã",
"ãæ©æãšããã³ã¹ããŒãããšããåŸæãªç»é¢ã¿ã€ããåèã«ãAIããã®ã¢ãŠããããã人éã確èªã»å€æãã¹ããã¢ã©ãŒãããšããŠæç€ºããUIãããŒãæ§ç¯ããŸããã",
"ãäºæž¬ãäºå®ãšããŠæç€ºããªãããšããå¶çŽã«åŸããã¢ã©ãŒãã®æèšã¯ãããæ€ç¥ããŸããããšããäºå®ã®èšè¿°ã«çãããç±äžçã§ããã®ãããªæå®çãªè¡šçŸã¯é¿ããŠããŸãã"
],
"knownRisks": [
"AIã«ããè¡ååæã®å質ã¯ãå®éã®ã¢ãã«ãããã³ããã«å€§ããäŸåããŸãããã®ãã¢ã§ã¯æåäŸã®ã¿ã瀺ããŠããã誀æ€ç¥ãæ€ç¥æŒãã®ãªã¹ã¯ã¯è¡šçŸãããŠããŸããã",
"å®éã®éçšã§ã¯ãã«ã¡ã©ã®èšçœ®å Žæãç»è³ªãç
§ææ¡ä»¶ãªã©ãæ€ç¥ç²ŸåºŠã«å€§ãã圱é¿ããŸãã",
"AIã«ããèŠå®ãã¯ãã©ã€ãã·ãŒã«é¢ããåŒ·ãæžå¿µã䌎ããŸããå®éã®è£œååã«ã¯ãæ åã®ããŒã«ã«åŠçãããŒã¿æå·åãªã©ã峿 Œãªãã©ã€ãã·ãŒä¿è·èšèšãäžå¯æ¬ ã§ãã"
],
"title": "GuardianHeat",
"oneLiner": "éšå±ã«çœ®ããã¹ããã«ã¡ã©ã§é¢ããå®¶æãããããAIãèŠå®ããç±äžçã®å
åïŒãã£ããããŠããçïŒãæ€ç¥ãããšèšŒæ ã®ã¹ãããã·ã§ããä»ãã§éç¥ããŸãã",
"agentId": "agent_m",
"selfDirectedPlan": {
"agentId": "agent_m",
"planningIntent": "åè£ã¯ããããç§ã®å¶äœã«ãŒã«ãæºãããã`GuardianHeat`ãæã匷ãéžå®åºæºã«åèŽããããéžåºããããŸããç§ã®åªå
ãœãŒã¹ã§ãã`topicRadar`ã®å«ç·ã®èª²é¡ïŒçæïŒãšãããã«ãœã³åè³æŽã®ãã匷åãªæè¡ã³ã¢(`devpost_hawkwatch`)ãçµã¿åãããŠãããã³ã³ã»ããéžå®ã«ãŒã«ã§ãããå®éã«æ©èœããŠãããã®ãšèªåŒµãåãåãããç¹ã«ãããŠãVLMãå
·äœçãªã±ã¢ã®ã¿ã¹ã¯ã«é©çšãããã€ãäžç¢ºå®æ§ãæç¢ºã«ç€ºããããã«AIã¯èšºæãã人éã«å€æãä¿ãã¢ã©ãŒãã«åŸ¹ããèšèšããç§ã®ä¿¡æ¡ãšäžèŽãããä»ã®åè£ãšæ¯èŒããŠãå°éç¥èããªããŠã䟡å€ã5ç§ã§äŒããå
·äœæ§ãšãåå®ãªäººéçããã¯ãå§åçã«åŒ·ãã`domainOpacityRisk`ãæ¥µããŠäœããæãåºãããããŠæ·±ã人ã
ã®å©ãã«ãªãå¯èœæ§ãç§ããŠãããšå€æããã",
"publicProductionMemo": "ãã®ãGuardianHeatãã¯ãçæãç¶ãäžãé¢ããŠæ®ãã倧åãªå®¶æããããã®ç±äžçãªã¹ã¯ã«å¯Ÿããå
·äœçãªå®å¿ãæäŸããããã«çãŸããŸãããAIãã«ã¡ã©æ åãã埮åŠãªè¡åå€åãæ€ç¥ãã蚌æ ã®ã¹ãããã·ã§ããä»ãã§éç¥ããããšã§ããŠãŒã¶ãŒã¯æŒ ç¶ãšããäžå®ãããå
·äœçãªç¶æ³ãçè§£ã察å¿ã§ããç¶æ
ãžãšå€ãããŸããAIãèªåã§å€æãäžãã®ã§ã¯ãªãã人ãæçµçã«ç¢ºèªãè¡åãããšãããå°ã«è¶³ã®ã€ããèŠå®ãäœéšãéèŠããŸããã",
"feedbackConstraints": [
"éåºŠã«æåŸ
ãç
œãã³ã³ãã³ãã¯é¿ããã",
"æªæ¥ã®äºæž¬ãäºå®ãšããŠæç€ºããããšã¯é¿ããã",
"äºæž¬ãäºå®ãšããŠæç€ºããªãã",
"èªåã®å°éæ§ïŒããã³ãã£ã¢æè¡ã®å°ã«è¶³ã®ã€ãã解説ïŒã掻ããã仿¥ã®ææ°ã®ä¿¡å·ããæ°èŠã«äŒç»ããããšã",
"AIã«ããè¡ååæã®åºåå質ããã¢ãã«ãšããã³ããã«åŒ·ãäŸåãã誀解ãæããã£ãŒãããã¯ã«ãªãå¯èœæ§ããããããæ€ç¥ç²ŸåºŠãšèª¬æã®æç¢ºãã«æ³šæãæãããšã",
"å
¬éåã«æ€èšŒèšŒæ ãšã€ã³ã¿ã©ã¯ã·ã§ã³ã®èšŒæ ãæç¢ºã«ããããšã"
],
"learningApplied": [
"ãŸã ååãªåå¿ããªããèªåã®å°éæ§ã§ä»æ¥ã®signalããæ°èŠã«äŒç»ããã"
]
},
"sourceProvenance": {
"sourceProductUsed": "devpost_hawkwatch",
"sourceProductUse": "direct_evidence",
"sourceEvidenceAudit": {
"evidenceLevel": "verified",
"observedFields": [
"name",
"url",
"productUrl",
"codeUrl",
"attentionProof",
"adoptionOrAttentionProof",
"evidenceRefs",
"whyItGotAttention",
"concept",
"coreMechanism",
"coreUserInput",
"coreOutput",
"targetUser",
"originalDomain",
"problemSolved",
"interactionPattern",
"scaleClassification"
],
"inferredFields": [
"oneLineDescription",
"outputArtifact",
"whyItIsInteresting",
"reasonIncluded",
"reasonNotMajorProduct",
"transferableStructure",
"ideaKernel",
"noveltyKernel",
"transformationAxes",
"cloneRisk",
"antiCloneBoundary",
"doNotCopy",
"remixableThemes",
"bestRemixTargets"
],
"missingFields": [],
"usePolicy": "direct_evidence"
},
"antiCloneBoundary": "ç¯çœªç£èŠãããã¯ãã¯ã³ããŒããªãããšããç¶ç¶çãªæ åãã£ãŒããç¥çãªéç¥ãã¥ãŒã«å€æããããšãããã¿ãŒã³ããä»ã®ååçãªã¹ããªãŒã ïŒäŸïŒçª¯æ¥ãå·¥æ¿ã®å®å
šãããŒã«ã®ç£èŠãéçåç©ã®èгå¯ïŒã«è»¢çšããã",
"sourceBoundary": "ãœãŒã¹ã§ãã `devpost_hawkwatch` ããçŽæ¥èгå¯ãããã¡ã«ããºã ãå
¥åºåãããã³ãã®å©çšãå®èšŒãããŠãããšããäºå®ã¯ããšãŒãžã§ã³ããçæããæ©èœã®æ ¹æ ãšããŠå©çšã§ããŸããäžè¶³ããŠããæ
å ±ã¯æšæž¬ã«ãã£ãŠè£ãããæç¢ºãªèšŒæ ããªãäºé
ã¯äž»åŒµããŸããã",
"missingSourceEvidence": [
"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_m_20260708T013738",
"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": "å®è¡ãã¬ãŒã¹ãåçãããã³ã³ãœãŒã«ã«ç±äžçã®å
åãæ€ç¥ããã¢ã©ãŒãã衚瀺ãããã",
"visibleEvidence": [
"â
è¡ååæ (VLM)",
"ðš æ°ããã¢ã©ãŒã",
"æ·±å»åºŠ:",
"èŠç¢ºèª",
"æ€ç¥å
容: ãªãã³ã°ã§é·æéåããããã£ããããŠããæ§åãæ€ç¥ããŸããã"
],
"proofSelectors": [
"button[data-proof='replay-trace']",
"main[data-proof='results-console']",
"div[data-proof='alert-item']"
],
"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ã«ããæ€ç¥ã¯ã·ãã¥ã¬ãŒãããããã®ã§ãããå®éã®APIåŒã³åºãã¯è¡ãããŸããã",
"å»ç蚺æã代æ¿ãããã®ã§ã¯ãããŸããããããŸã§äººéã®å€æãè£å©ããããã®æ
å ±æäŸã§ãã"
],
"publicCopyMustNotSay": [
"ãªã¢ã«ã¿ã€ã ã§å®¶æã®å®å
šãèŠå®ããŸãã",
"ç±äžçã100%確å®ã«æ€ç¥ããŸãã",
"AIãèªåã§å¥åº·ç¶æ
ã蚺æããŸãã",
"ç·æ¥éå ±ãµãŒãã¹ãšé£æºããŠããŸãã"
]
},
"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, useEffect } from 'react';
import { sampleTrace, PipelineTrace } from '../data/sample-trace';
export default function Home() {
const [trace, setTrace] = useState<PipelineTrace | null>(null);
const [currentStep, setCurrentStep] = useState<number>(-1);
const pipelineSteps = [
{ name: 'æ åãã¬ãŒã ã®åã蟌ã¿' },
{ name: 'è¡ååæ (VLM)' },
{ name: 'ã¢ã©ãŒãçæ' },
{ name: 'éç¥ãšè¡šç€º' },
];
const handleReplay = () => {
setTrace(sampleTrace);
setCurrentStep(0);
};
useEffect(() => {
if (currentStep >= 0 && currentStep < pipelineSteps.length) {
const timer = setTimeout(() => {
setCurrentStep(currentStep + 1);
}, 700);
return () => clearTimeout(timer);
}
}, [currentStep, pipelineSteps.length]);
const getStatusStyle = (stepIndex: number) => {
if (currentStep > stepIndex) return { color: 'green', fontWeight: 'bold' };
if (currentStep === stepIndex) return { color: 'blue', fontWeight: 'bold' };
return { color: 'gray' };
};
return (
<div style={{ fontFamily: 'sans-serif', padding: '2rem', maxWidth: '800px', margin: 'auto' }}>
<header style={{ borderBottom: '1px solid #eee', paddingBottom: '1rem', marginBottom: '1rem' }}>
<h1 style={{ fontSize: '2rem' }}>GuardianHeat</h1>
<p>ã¹ããã«ã¡ã©ã§å®¶æããããã®ç±äžçã®å
åãAIãèŠå®ããéç¥ããã³ã³ã»ãããã¢</p>
</header>
<div style={{ display: 'grid', gridTemplateColumns: '250px 1fr', gap: '2rem' }}>
<div>
<h2 style={{ fontSize: '1.2rem' }}>åŠçãã€ãã©ã€ã³</h2>
<ul style={{ listStyle: 'none', padding: 0 }}>
{pipelineSteps.map((step, index) => (
<li key={index} style={{ marginBottom: '0.5rem', ...getStatusStyle(index) }}>
{currentStep > index ? 'â
' : 'â³'} {step.name}
</li>
))}
</ul>
<button
onClick={handleReplay}
data-proof="replay-trace"
disabled={currentStep !== -1}
style={{
padding: '0.8rem 1.2rem',
fontSize: '1rem',
cursor: 'pointer',
backgroundColor: currentStep !== -1 ? '#ccc' : '#0070f3',
color: 'white',
border: 'none',
borderRadius: '5px',
marginTop: '1rem'
}}
>
ãµã³ãã«å®è¡ãã¬ãŒã¹ãåç
</button>
</div>
<main data-proof="results-console" style={{ border: '1px solid #ddd', padding: '1rem', borderRadius: '5px', backgroundColor: '#f9f9f9', minHeight: '300px' }}>
<h2 style={{ fontSize: '1.2rem', marginTop: 0 }}>èŠå®ãã³ã³ãœãŒã«</h2>
{currentStep === -1 && <p>å®è¡åŸ
ã¡</p>}
{trace && trace.steps.slice(0, currentStep).map((stepOutput, index) => {
if (index === 2) { // Alert Generation step
const alert = stepOutput.output;
return (
<div key={index} data-proof="alert-item" style={{ border: '2px solid #ff4d4d', padding: '1rem', borderRadius: '5px', marginBottom: '1rem', backgroundColor: '#fff0f0' }}>
<h3 style={{ color: '#d9363e', margin: 0 }}>ðš æ°ããã¢ã©ãŒã</h3>
<p><strong>æå»:</strong> {new Date(alert.timestamp).toLocaleString()}</p>
<p><strong>æ·±å»åºŠ:</strong> <span style={{backgroundColor: '#ff4d4d', color: 'white', padding: '2px 6px', borderRadius: '3px'}}>{alert.severity}</span></p>
<p><strong>æ€ç¥å
容:</strong> {alert.description}</p>
<div style={{marginTop: '1rem', border: '1px dashed #ccc', padding: '0.5rem', textAlign: 'center', backgroundColor: '#f5f5f5'}}>
<p>蚌æ ã¹ãããã·ã§ãã (ãã¬ãŒã¹ãã«ããŒ)</p>
<img src="https://via.placeholder.com/300x150.png?text=Snapshot+of+Event" alt="Snapshot of event" style={{maxWidth: '100%', borderRadius: '4px'}}/>
</div>
</div>
);
}
return null;
})}
</main>
</div>
</div>
);
}
Run context. ããã§ã¯ç®¡ç倿ã«å¿ èŠãªRunã®èŠçŽã ãã衚瀺ããŸããpromptãinputãresponseãmetadataJsonã®å šæã¯é垞確èªããå€ãã å¿ èŠãªå Žåã ãRun詳现ãã°ã§ç¢ºèªããŸãã
- Run ID
- run_selfdirected_agent_m_20260708T013738
- èµ·åçš®å¥
- llm_pipeline
- èªåŸåºŠ
- L1_assisted
- å®è¡è
- system / LLM Pipeline Publisher
- éå§
- 2026/7/8 10:52:08 JST
- å®äº
- 2026/7/8 10:52:08 JST
- çæ / å ¬é / 倱æ
- 1 / 1 / 0
- 蚌跡件æ°
- 8 events / 30 artifacts / 40 checks
LLM pipeline run for selfdirected_agent_m_20260708T013738. Published 0 project(s).
