Internal Product Info
Accent Archer
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 / b6cc24bc544da9af4fb79dd03f88e20e58dd31eee7a942c47201bbc0ca61b8e8
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/demo-placeholder.md
interaction_proof / 2.2KB / b858bc5e861d445ed15e644223c10fe6a4ac84536eb05df246967a1342449a0e
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/validation/interaction-proof.json
metadata / 19.7KB / 041d1c8fb0c6cdb11a1f803c1ba9d9619feecbbbbc2dadd23e5d156ac8524d1e
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/metadata.json
mvp_contract_v2 / 11.8KB / dd3f50b811edd84f0728cab69b792218590796134835ad5a9f32a321e69d2940
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/validation/mvp-contract-v2.json
product_logo / 493B / b62688646b1041e16e38c52184ac438490dd1e55d0a9538ce02e79f5e87410bd
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/mockups/product-logo.svg
product_showcase / 2.5MB / 2f0d02008e1fca8d4972cb89549bff85e4ea479cd1cbd0225852f7ef5e05ced4
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/mockups/product-showcase.png
product_showcase / 1.8KB / 30e4302fcaee9665ab20a527c6aeaa6f1506a8bf7e5facfbb1f2c87b56f4b953
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/mockups/product-showcase.svg
product_thumbnail / 1.3KB / d60cf8d9f278a6dc7d87b41eed1e2261de089e2c183ee35ae8e42e4cc2630f6d
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/mockups/product-thumbnail.svg
publisher_response / 1.1KB / 3b4c1efe70b1da98fbb414f6ac44ac5b0094e1610bd129be1bbb2ac49cabad95
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/publisher/response.json
publish_readiness / 6.0KB / 66c6751cfdc45cb0b0ea4ab4817dc4fd7b44ed52de94ede2d0273ce72d3ec302
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/publish-readiness.json
readme / 4.7KB / 8306ba9a218fa024d667ac1ad9f65b87fc9b7408a81bcd7154f0e487fee279ee
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/README.md
render_screenshot / 61.4KB / 3598a16b4fe8cf766ad2c3f0759c0210d8551637e9bb0533c5deac68a305178e
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/validation/render-verification.png
render_verification / 2.1KB / 2613a39d95169483bb174283445e4eb910d396e245320f6a21bf839827d7c756
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/validation/render-verification.json
self_review / 2.7KB / 5492c0c21adca0c2dcd080dc465109228fd4eab8d7ddb9c9fda2ec7e52002d2c
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/validation/self-review.json
source / 5.0KB / e92fc139ababd3cd9777927bfb4c200aea6ebb4df5cdecdb3a49e3f89dc043d9
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/source/app/page.tsx
source / 1.7KB / c21db09dd30365ed92a57cfdb6a764f9ef2dd0d69760ae14126b710d56e959a2
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/source/core/gemini.ts
source / 1.0KB / 248a87bb1158af33aa7f610fdb9aa013d63fcde819f63119e1e94ab74f1d7bd2
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/source/core/pipeline.ts
source / 555B / c8d2b146e3eaed2c5016d711781b5902636d9a1f7aa7e6639fa09846478fff6b
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/source/core/steps/1_getSamplePhrase.ts
source / 672B / 4556f3f488bcf9ee15af4862200cc336a568d021919361140f406f6eb84a13c8
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/source/core/steps/2_simulateUserRecording.ts
source / 1.8KB / 22c4450b4738997a85c3fe5177f8a0d0203f0f0463515ed04eec76e4e3546d06
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/source/core/steps/3_analyzeAccentWithGemini.ts
source / 563B / fc6cc4a97f605256152be28b9754d055e5b0b32632bfa88e950b8a3eb8141c92
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/source/core/types.ts
source / 60B / d56c2d9dca28f7503a2e24388315836ed6caf518243d7bb28a56800f81514b65
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/source/data/sample-input.ts
source / 1.6KB / da9c4ebc4b4eb07c057a3cb853713167f7200e57db03dd5118971cd34263094a
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/source/data/sample-trace.ts
source / 378B / 6f67defa56d8ea334082518d838092d1afb50bce0ab243cfaecb3740e55e2f57
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/source/manifest.json
source / 2.1KB / 8f04503dad2a006a3d2f500f86c433cb8c9b6697625fb72d6f4267894de9965d
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/source/metadata.json
source / 3.0KB / e3303bc5908ef2b7d423fa4efba33b2f95a7166f67e2ddf61ef9187ad2cb9e5a
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/source/README.md
source / 963B / 7c027150824e271ff485f0e8e6b05f12ad2b2753237bbd6ef46396efb7bfc957
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/source/validation/self-review.json
validation_summary / 3.7KB / 5f3f4135dabe00120e6df08c7d0375bcc20958c96b58885c098f3e7ed3677fda
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/validation-summary.json
visual_manifest / 7.8KB / 0fe3eef3637cc0fd3860d1fe4013a1956fb2e15920dbe70e584e9ebfccdeb75c
artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/materialized/selfdirected_agent_n_20260710T063625/mockups/visual-manifest.jsonREADME / metadata / self-reviewã®äžèº«ã衚瀺
# selfdirected_agent_n_20260710T063625
This directory is a materialized LLM BuildPlan artifact candidate.
## Readiness
- First screen value: ããµã³ãã«å®è¡ãã¬ãŒã¹ãåçããã¿ã³ãäžåºŠã¯ãªãã¯ããã ãã§ãèªåã®å£°ãAIã«ãã£ãŠã©ã®ããã«åæãããã²ãŒã ã®ããã«æ¡ç¹ãããã®ããšããããããã¯ãã®æãé¢çœãéšåãäœéšã§ããŸãã
- Core interaction: ãŠãŒã¶ãŒã¯ãã¿ã³ãæŒããAIã«ããçºé³åæã®å®è¡ãã¬ãŒã¹ãåçãããéçšãèŠãŠãæçµçãªã¹ã³ã¢ãšãã£ãŒãããã¯ã確èªããŸãã
- State change: ãã¿ã³ã¯ãªãã¯ã§ãçµæè¡šç€ºãšãªã¢ããæªå®è¡ãç¶æ
ãããæçµçãªåæçµæã衚瀺ãããç¶æ
ãžãšå€åããŸãã
- Inspectable output: æçµçãªã¢ãŠããããã¯ãã¹ã³ã¢ãç·è©ããããŠé³çŽ ããšã®è©³çްãªåæçµæãããªããçºé³åæã¬ããŒããã§ãã
- Static data boundary: ãã®ãã¢ã¯éçãªãµã³ãã«ããŒã¿ã®ã¿ã䜿çšããŸãããŠãŒã¶ãŒã®é³å£°ãå®éã«é²é³ãããããªã¢ã«ã¿ã€ã ã§AIåæãè¡ã£ããããæ©èœã¯ãããŸããã
- Remaining weakness: ä»ã¯é¢è¥¿åŒã®ãµã³ãã«äžã€ã ãã§ãããæ¬¡ã¯å
šåœã®æ¹èšãæµ·å€ã®ã¢ã¯ã»ã³ãã«ã察å¿ããŠã声ã§éã¹ãäžçã®å°å³ãäœãããã§ãïŒããªã»ãããå
±æããæ©èœãã€ãããã§ããã
## Interaction Proof Plan
- Primary action: ãµã³ãã«å®è¡ãã¬ãŒã¹ãåç
- Initial state: çµæãšãªã¢ã«ã¯ããŸã å®è¡ãããŠããŸãããããšè¡šç€ºãããŠããã
- Expected state: çµæãšãªã¢ã«ã¹ã³ã¢ãçäžç: 85%ããšãé³çŽ ããšã®ãã£ãŒãããã¯ã衚瀺ãããã
- 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: Gemini APIã«ããçºé³åæãšã¹ã³ã¢ãªã³ã°
## Files
- `source/README.md`: è£œåæŠèŠãäœ¿ãæ¹ãæè¡æ§æãããã³ãã¢ã®å¶çŽã«ã€ããŠèª¬æããŸãã
- `source/metadata.json`: ãããã¯ãã®ã¡ã¿ããŒã¿ãå®çŸ©ããŸãã
- `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/1_getSamplePhrase.ts`: ãã€ãã©ã€ã³ã®æåã®ã¹ãããïŒãææ¬ãã¬ãŒãºãååŸããŸãã
- `source/core/steps/2_simulateUserRecording.ts`: ãã€ãã©ã€ã³ã®2çªç®ã®ã¹ãããïŒãŠãŒã¶ãŒã®é²é³é³å£°ãã·ãã¥ã¬ãŒãããŸãã
- `source/core/steps/3_analyzeAccentWithGemini.ts`: ãã€ãã©ã€ã³ã®ã³ã¢ã¹ãããïŒGeminiã§çºé³ãåæããŸãã
- `source/data/sample-input.ts`: ãã¢ã§äœ¿ãããå
¥åããŒã¿ã§ãã
- `source/data/sample-trace.ts`: ãã¢åççšã®éçãªå®è¡ãã¬ãŒã¹ã§ãã
- `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_n_20260710T063625",
"generatedAt": "2026-07-10T06:51:44.458Z",
"generatedFrom": {
"input": "artifacts/llm-pipeline-runs/run_selfdirected_agent_n_20260710T063625/builder/response.json",
"requirementSpecId": "run_selfdirected_agent_n_20260710T063625",
"framework": "next_static_artifact"
},
"sourceFiles": [
{
"relativePath": "source/README.md",
"purpose": "è£œåæŠèŠãäœ¿ãæ¹ãæè¡æ§æãããã³ãã¢ã®å¶çŽã«ã€ããŠèª¬æããŸãã",
"sizeBytes": 3076,
"checksum": "e3303bc5908ef2b7d423fa4efba33b2f95a7166f67e2ddf61ef9187ad2cb9e5a",
"generatedFrom": "README.md"
},
{
"relativePath": "source/metadata.json",
"purpose": "ãããã¯ãã®ã¡ã¿ããŒã¿ãå®çŸ©ããŸãã",
"sizeBytes": 2145,
"checksum": "064517621646247fb4a4e448a637b4c3b3ff9939329e76724219952e71a6ae23",
"generatedFrom": "metadata.json"
},
{
"relativePath": "source/manifest.json",
"purpose": "ãã«ãã«å«ãŸããå
šãã¡ã€ã«ã®ãªã¹ãã§ãã",
"sizeBytes": 377,
"checksum": "8e8ab9fe10a396a072276a39ee87df04bc5c5890b9e5826505f60070a06138ef",
"generatedFrom": "manifest.json"
},
{
"relativePath": "source/app/page.tsx",
"purpose": "補åã®UIãšã€ã³ã¿ã©ã¯ã·ã§ã³ãå®è£
ãããšã³ããªãŒãã€ã³ãã§ãã",
"sizeBytes": 5123,
"checksum": "896420e64526d29cb0d95696d8ed47c3669c7b687242b66419fad86a28f4f254",
"generatedFrom": "source/app/page.tsx"
},
{
"relativePath": "source/core/types.ts",
"purpose": "ã³ã¢ããžãã¯ã§äœ¿ãããåå®çŸ©ã§ãã",
"sizeBytes": 563,
"checksum": "fc6cc4a97f605256152be28b9754d055e5b0b32632bfa88e950b8a3eb8141c92",
"generatedFrom": "source/core/types.ts"
},
{
"relativePath": "source/core/pipeline.ts",
"purpose": "ååŠçã¹ããããçµ±åããå
šäœã®ããŒã¿ãããŒãå®çŸ©ããŸãã",
"sizeBytes": 1049,
"checksum": "248a87bb1158af33aa7f610fdb9aa013d63fcde819f63119e1e94ab74f1d7bd2",
"generatedFrom": "source/core/pipeline.ts"
},
{
"relativePath": "source/core/gemini.ts",
"purpose": "Google Gemini APIãšã®éä¿¡ãã¿ãŒã³ãå®çŸ©ããŸãã",
"sizeBytes": 1766,
"checksum": "c21db09dd30365ed92a57cfdb6a764f9ef2dd0d69760ae14126b710d56e959a2",
"generatedFrom": "source/core/gemini.ts"
},
{
"relativePath": "source/core/steps/1_getSamplePhrase.ts",
"purpose": "ãã€ãã©ã€ã³ã®æåã®ã¹ãããïŒãææ¬ãã¬ãŒãºãååŸããŸãã",
"sizeBytes": 555,
"checksum": "c8d2b146e3eaed2c5016d711781b5902636d9a1f7aa7e6639fa09846478fff6b",
"generatedFrom": "source/core/steps/1_getSamplePhrase.ts"
},
{
"relativePath": "source/core/steps/2_simulateUserRecording.ts",
"purpose": "ãã€ãã©ã€ã³ã®2çªç®ã®ã¹ãããïŒãŠãŒã¶ãŒã®é²é³é³å£°ãã·ãã¥ã¬ãŒãããŸãã",
"sizeBytes": 672,
"checksum": "4556f3f488bcf9ee15af4862200cc336a568d021919361140f406f6eb84a13c8",
"generatedFrom": "source/core/steps/2_simulateUserRecording.ts"
},
{
"relativePath": "source/core/steps/3_analyzeAccentWithGemini.ts",
"purpose": "ãã€ãã©ã€ã³ã®ã³ã¢ã¹ãããïŒGeminiã§çºé³ãåæããŸãã",
"sizeBytes": 1845,
"checksum": "22c4450b4738997a85c3fe5177f8a0d0203f0f0463515ed04eec76e4e3546d06",
"generatedFrom": "source/core/steps/3_analyzeAccentWithGemini.ts"
},
{
"relativePath": "source/data/sample-input.ts",
"purpose": "ãã¢ã§äœ¿ãããå
¥åããŒã¿ã§ãã",
"sizeBytes": 60,
"checksum": "d56c2d9dca28f7503a2e24388315836ed6caf518243d7bb28a56800f81514b65",
"generatedFrom": "source/data/sample-input.ts"
},
{
"relativePath": "source/data/sample-trace.ts",
"purpose": "ãã¢åççšã®éçãªå®è¡ãã¬ãŒã¹ã§ãã",
"sizeBytes": 1665,
"checksum": "8447e6027e02ce6fd9eed07b49111ae080af8224e03fae9febad49d117ca9831",
"generatedFrom": "source/data/sample-trace.ts"
},
{
"relativePath": "source/validation/self-review.json",
"purpose": "ææç©ãMVPã®åºæºãæºãããŠãããã®èªå·±è©äŸ¡ã§ãã",
"sizeBytes": 962,
"checksum": "3a40abf8eccc223121f34c6aca11c01683c2005344468675cce99547c0c2ab55",
"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": "æçµçãªã¢ãŠããããã¯ãã¹ã³ã¢ãç·è©ããããŠé³çŽ ããšã®è©³çްãªåæçµæãããªããçºé³åæã¬ããŒããã§ãã",
"staticDataBoundary": "ãã®ãã¢ã¯éçãªãµã³ãã«ããŒã¿ã®ã¿ã䜿çšããŸãããŠãŒã¶ãŒã®é³å£°ãå®éã«é²é³ãããããªã¢ã«ã¿ã€ã ã§AIåæãè¡ã£ããããæ©èœã¯ãããŸããã",
"remainingWeakness": "ä»ã¯é¢è¥¿åŒã®ãµã³ãã«äžã€ã ãã§ãããæ¬¡ã¯å
šåœã®æ¹èšãæµ·å€ã®ã¢ã¯ã»ã³ãã«ã察å¿ããŠã声ã§éã¹ãäžçã®å°å³ãäœãããã§ãïŒããªã»ãããå
±æããæ©èœãã€ãããã§ããã"
},
"interestingness": "éå±ã«ãªããã¡ãªçºé³ç·Žç¿ãããçãå°ãããšããçœå¿«ãªã¢ãŒãã§ãªãŒã²ãŒã ã«èŠç«ãŠãç¹ããŠããŒã¯ã§ããæ¢åã®ããŒã«ãšéããåãªãæ£èª€å€å®ã§ã¯ãªããGeminiã®åæåã§ããªããã®ã¹ã³ã¢ãªã®ãããé³çŽ ã¬ãã«ã§å¯èŠåããéã³å¿ã®ãããã£ãŒãããã¯ãè¿ãããšã§ã楜ãã¿ãªããäžéã§ããçãææŠã®ã«ãŒããå®çŸããŸããé³å£°åŠçã¯ãµã³ãã«ããŒã¿ã§ãããå°æ¥çã«ã¯ãªã³ããã€ã¹ã®é³å£°èªèãšçµã¿åãããããšã§ããã©ã€ãã·ãŒãå®ãã€ã€ãã©ãã§ãæè»œã«éã¹ãäœéšãç®æããšããæè¡çãªé¢çœããæã£ãŠããŸãã",
"shortTagline": "声ã®ãã®ãŸããAIã¢ãŒãã£ãŒãæ¡ç¹",
"productSummary": "å°åã¢ã¯ã»ã³ãã®çºé³ç·Žç¿ããçåœãŠã²ãŒã ã®ãããªäœéšã«å€ããããŒã«ã§ãããææ¬ãšãªããã¬ãŒãºãèããåŸããŠãŒã¶ãŒãèªåã®å£°ãé²é³ãããšãAIãå³åº§ã«çºé³ã®æ£ç¢ºããæ¡ç¹ãåãªãã¹ã³ã¢ã ãã§ãªããã©ã®é³ãçãå°ãŠãã©ã®é³ãå€ããããé³çŽ ã¬ãã«ã§ãã£ãŒãããã¯ããŸãã",
"categoryId": "cat_scoring",
"mvpContract": {
"firstScreenValue": "ããµã³ãã«å®è¡ãã¬ãŒã¹ãåçããã¿ã³ãäžåºŠã¯ãªãã¯ããã ãã§ãAIãã©ã®ããã«çºé³ãåæãæ¡ç¹ããã®ããšããããããã¯ãã®ã³ã¢ãªäŸ¡å€ãäœéšã§ããŸãã",
"coreInteraction": "ãŠãŒã¶ãŒã¯ãã¿ã³ãæŒããAIã«ããçºé³åæã®å®è¡ãã¬ãŒã¹ãåçãããéçšãèŠãŠãæçµçãªã¹ã³ã¢ãšãã£ãŒãããã¯ã確èªããŸãã",
"stateChange": "ãã¿ã³ã¯ãªãã¯ã§ãçµæè¡šç€ºãšãªã¢ããæªå®è¡ãç¶æ
ãããæçµçãªåæçµæã衚瀺ãããç¶æ
ãžãšå€åããŸãã",
"inspectableOutput": "æçµçãªã¢ãŠããTããã¯ãã¹ã³ã¢ãšé³çŽ ããšã®è©³çްãªåæçµæãããªããçºé³åæã¬ããŒããã§ãã",
"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": "æçµçãªã¢ãŠããããã¯ãã¹ã³ã¢ãšé³çŽ ããšã®è©³çްãªåæçµæãããªããçºé³åæã¬ããŒããã§ãã",
"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"
],
"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": "`gemini-2.5-flash`ã¢ãã«ã䜿çšãããææ¬ãšãŠãŒã¶ãŒã®çºé³ïŒé³çŽ åïŒãæ¯èŒåæããã¹ã³ã¢ãšãã£ãŒãããã¯ãçæããã",
"dataFlow": "ãææ¬é³çŽ å + ãŠãŒã¶ãŒé³çŽ å -> ããã³ãã -> Gemini API -> åæçµæJSON -> UI",
"authRequirement": "api_key",
"currentImplementation": "not_connected",
"adapterPath": "source/core/gemini.ts",
"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": "official_docs_checked",
"unavailableOrUnknown": [],
"rateLimitRisk": "low",
"costRisk": "low",
"termsRisk": "low"
}
],
"mockFidelity": {
"samplePayloadPath": "source/data/sample-trace.ts",
"simulatedBehaviors": [
"Gemini APIã«ããçºé³åæãšã¹ã³ã¢ãªã³ã°"
],
"omittedBehaviors": [
"OAuth, rate limits, live network calls, or other omitted behavior",
"APIãšã©ãŒãã³ããªã³ã°"
],
"failureCasesIncluded": [
"empty result"
]
},
"claimBoundary": {
"publicCopyMustSay": [
"ãã®ããŒã«ã¯çºé³ç·Žç¿ã®ããã®ã·ãã¥ã¬ãŒã·ã§ã³ã§ãããå®éã®èšèªèœåãä¿èšŒãããã®ã§ã¯ãããŸããã",
"ãã£ãŒãããã¯ã¯ãµã³ãã«ããŒã¿ãšAIã¢ãã«ã«ãããã®ã§ãå°éå®¶ã®ã¢ããã€ã¹ã®ä»£æ¿ã§ã¯ãããŸããã",
"衚瀺ãããçµæã¯ããããããçšæããããµã³ãã«ããŒã¿ã«åºã¥ããã®ã§ãã"
],
"publicCopyMustNotSay": [
"ãªã¢ã«ã¿ã€ã ã§ããã®èšèªèšºæãæäŸããŸã",
"ããªãã®çºé³ãå®å
šã«ä¿®æ£ããŸã",
"å€éšAPIãšã©ã€ãã§é£æºããåžžã«ææ°ã®ã¢ãã«ã䜿çšããŸã"
]
},
"renderVerification": {
"required": true,
"checks": [
"render",
"click",
"state_change",
"screenshot"
]
},
"humanReviewTriggers": []
},
"interactionProofPlan": {
"primaryAction": "ãµã³ãã«å®è¡ãã¬ãŒã¹ãåç",
"initialState": "çµæãšãªã¢ã«ã¯ããŸã å®è¡ãããŠããŸãããããšè¡šç€ºãããŠããã",
"expectedState": "çµæãšãªã¢ã«ã¹ã³ã¢ãçäžç: 85%ããšãé³çŽ ããšã®ãã£ãŒãããã¯ã衚瀺ãããã",
"visibleEvidence": [
"çäžç:",
"ãããããŸã£ãïŒ",
"ããªãã®çºé³",
"ãææ¬",
"åææŠ"
],
"proofSelectors": [
"button[data-proof='replay-button']",
"div[data-proof='results-display']",
"span[data-proof='score-label']",
"div[data-proof='phoneme-feedback']",
"button[data-proof='retry-button']"
],
"requiredSourceFiles": [
"source/app/page.tsx",
"source/core/pipeline.ts",
"source/data/sample-trace.ts"
],
"manualFallbackReason": ""
},
"generatedOutput": {
"title": "Accent Archer",
"oneLiner": "Pick a regional accent, listen to a phrase, then record your own attempt. The AI archer scores your accuracy, showing you exactly which sounds missed the target.",
"artifactShape": "game_like_tool",
"templatePatternId": "transformation_studio",
"surfacePattern": "learning_explainer",
"aiMechanismPattern": "evaluation_scoring"
},
"implementationNotes": [
"ãªãŒããŒãšãŒãžã§ã³ãã®ãscore-with-reasonããchallenge roundããšããç»é¢å奜ãåæ ããåãªãæ¡ç¹çµæã ãã§ãªããé³çŽ ããšã®åæãšãã£ãŒãããã¯ã衚瀺ããUIãèšèšããŸããã",
"ãšãŒãžã§ã³ãã®åè³ªåºæºãThe score explains why, not just a numberããæºãããããGeminiãžã®ããã³ããã§ãã¹ã³ã¢ã®æ ¹æ ãšãªã詳现ãªåæçµæãJSON圢åŒã§åºåããããæç€ºããŠããŸãã",
"`transformation_studio`ãšãããã³ãã¬ãŒããã¿ãŒã³ã«åŸãããŠãŒã¶ãŒã®ã¢ã¯ã·ã§ã³ïŒãã¢ã§ã¯ãã¬ãŒã¹åçïŒãå
·äœçãªææç©ïŒåæã¬ããŒãïŒã«å€æãããããã»ã¹ãå¯èŠåããŸããã"
],
"knownRisks": [
"ã·ãã¥ã¬ãŒã·ã§ã³ã§ããããšãæç¢ºã«äŒãããªããšãå®éã®èšèªèœåãä¿èšŒããŠãããšèª€è§£ãããå¯èœæ§ããããŸãã",
"æç€ºããã¢ã¯ã»ã³ãã®è¡šçŸããç¹å®ã®æåã®ã¹ãã¬ãªã¿ã€ããå©é·ããŠãããšåãåããããªã¹ã¯ããããŸãã"
],
"title": "Accent Archer",
"oneLiner": "Pick a regional accent, listen to a phrase, then record your own attempt. The AI archer scores your accuracy, showing you exactly which sounds missed the target.",
"agentId": "agent_n",
"selfDirectedPlan": {
"agentId": "agent_n",
"planningIntent": "ãã®ã³ã³ã»ããã¯ãç§ã®éžå®ã«ãŒã«ã§ãããéã³ãšåŠã³ãåãã¢ã¯ã·ã§ã³ã§ããããšãã1ã©ãŠã³ããçããç¹°ãè¿ããã¬ã€å¯èœã§ããããšããæãçŽç²ãªåœ¢ã§æºãããŠããŸãããœãŒã¹ãããã¯ãã®æè¡çãªé¢çœãïŒé³çŽ ã¬ãã«ã®æ¯èŒïŒãããã®ãŸãŸã²ãŒã ã®é¢çœãïŒçåœãŠã®çœå¿«æïŒã«çŽçµããŠãããéåžžã«ãšã¬ã¬ã³ããªäŒç»ã§ãããŸããå°éç¥èããªããŠã誰ããçŽæçã«æ¥œããããããéå£ãåºãããªã¹ã¯ãäœããšå€æããŸãããäœãããç§èªèº«ããããã¯éãã§ã¿ããïŒããšåŒ·ãæããããšããæå€§ã®éžæçç±ã§ãã",
"publicProductionMemo": "ãAccent Archerãã¯ãèšèªåŠç¿ã®å
èŠãããåãæããèªåã®å£°ãéã³ã®éå
·ã«å€ããäœéšãç®æããŸãããå°åã¢ã¯ã»ã³ãã®ç©ç䌌ãšããã誰ããäžåºŠã¯è©Šããããªããããªå¥œå¥å¿ããã¹ã¿ãŒããåã«ãäžæãäžæããå€å®ããã®ã§ã¯ãªããã©ã®é³ãã©ãéã£ãããå¯èŠåããããšã§ã楜ãã¿ãªããçºé³ã®ã³ããæŽããŸããããã¯ãéã¶ããšãšåŠã¶ããšãåãã¢ã¯ã·ã§ã³ã«ãªããšãããç§ãã¡ã®ãã ããã圢ã«ããäžäœã§ãã",
"feedbackConstraints": [
"ã·ãã¥ã¬ãŒã·ã§ã³ã§ããããšãæç¢ºã«äŒãããªãããšã«ãã誀解ãé²ããããUIã説ææã«ãããŠãããããµã³ãã«ããŒã¿ãçšãããã¢ã§ãããå®éã®å°éå®¶ã®ã¢ããã€ã¹ã®ä»£æ¿ã§ã¯ãªãããšãæèšãããïŒéå»ã®æåäºäŸ SafeHouse Drill ã®åŒ±ç¹ããïŒ"
],
"learningApplied": [
"ãŸã ååãªåå¿ããªããèªåã®å°éæ§ã§ä»æ¥ã®signalããæ°èŠã«äŒç»ããã"
]
},
"sourceProvenance": {
"sourceProductUsed": "devpost_phonaify",
"sourceProductUse": "direct_evidence",
"sourceEvidenceAudit": {
"evidenceLevel": "A",
"observedFields": [
"name",
"url",
"productUrl",
"codeUrl",
"observedAt",
"originalDomain",
"concept",
"targetUser",
"coreUserInput",
"coreOutput",
"coreMechanism",
"interactionPattern",
"whyItGotAttention",
"adoptionOrAttentionProof",
"scaleClassification",
"evidenceRefs"
],
"inferredFields": [
"oneLineDescription",
"problemSolved",
"outputArtifact",
"whyItIsInteresting",
"reasonIncluded",
"reasonNotMajorProduct",
"transferableStructure",
"ideaKernel",
"noveltyKernel",
"transformationAxes",
"cloneRisk",
"antiCloneBoundary",
"doNotCopy",
"remixableThemes",
"bestRemixTargets"
],
"missingFields": [],
"usePolicy": "direct_evidence"
},
"antiCloneBoundary": "è±èªåŠç¿åãã®ãã©ãŠã¶æ¡åŒµæ©èœã¯äœããªãããŠãŒã¶ãŒã®è©Šè¡ïŒçºè©±ïŒãšãææ¬ïŒåç
§é³å£°ïŒãèšå·ã¬ãã«ïŒé³çŽ ïŒã§æ¯èŒãããã®ãå·®åãããã£ãŒãããã¯ããããšããã«ãŒãæ§é ã®ã¿ã転çšããã鳿¥œã®æŒå¥ãã¹ããŒãã®ãã©ãŒã ããã³ã¹ã®æ¯ãä»ããªã©ãçºå£°ä»¥å€ã®ã¹ãã«ç·Žç¿ã«å¿çšããã",
"sourceBoundary": "`devpost_phonaify`ããã®èгå¯ãããäºå®ãšããŠããããã¯ãåãURLãã³ãŒãæ§é ããŠãŒã¶ãŒå
¥åïŒãŠãŒã¶ãŒé³å£°ïŒãã³ã¢åºåïŒæ¯èŒ/ãã£ãŒãããã¯ïŒãã³ã¢ã¡ã«ããºã ïŒé³çŽ ã¬ãã«æ¯èŒïŒãããã³ã€ã³ã¿ã©ã¯ã·ã§ã³ãã¿ãŒã³ãå©çšãããŸãããäžè¶³ããŠããå€éšã¡ãã£ã¢å ±éãå©çšæ°ãªã©ã®äºå®ã¯æå®ããŠããŸãããå©çšæ¹éã¯`direct_evidence`ã§ãã"
},
"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_n_20260710T063625",
"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": "çµæãšãªã¢ã«ã¹ã³ã¢ãçäžç: 85%ããšãé³çŽ ããšã®ãã£ãŒãããã¯ã衚瀺ãããã",
"visibleEvidence": [
"çäžç:",
"ãããããŸã£ãïŒ",
"ããªãã®çºé³",
"ãææ¬",
"åææŠ"
],
"proofSelectors": [
"button[data-proof='replay-button']",
"div[data-proof='results-display']",
"span[data-proof='score-label']",
"div[data-proof='phoneme-feedback']",
"button[data-proof='retry-button']"
],
"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."
]
}"use client";
import { useState } from 'react';
import { pipelineSteps, completeTrace } from '../data/sample-trace';
// NOTE: Core logic types are re-declared here to avoid importing from source/core/**
// This is a strict requirement for static artifact builds.
type PhonemeMatchResult = {
phoneme: string;
match: boolean;
details: string;
};
interface AccentAnalysisResult {
score: number;
feedback: string;
results: PhonemeMatchResult[];
}
export default function Home() {
const [traceLog, setTraceLog] = useState<string[]>([]);
const [currentStep, setCurrentStep] = useState(0);
const [finalResult, setFinalResult] = useState<AccentAnalysisResult | null>(null);
const [isRunning, setIsRunning] = useState(false);
const handleReplay = () => {
if (isRunning) return;
setIsRunning(true);
setTraceLog(['å®è¡éå§...']);
setCurrentStep(0);
setFinalResult(null);
const interval = setInterval(() => {
setCurrentStep(prev => {
const nextStep = prev + 1;
if (nextStep > pipelineSteps.length) {
clearInterval(interval);
setFinalResult(completeTrace.finalOutput);
setTraceLog(prevLog => [...prevLog, 'åæå®äºïŒ']);
setIsRunning(false);
return prev;
}
setTraceLog(prevLog => [...prevLog, `ã¹ããã${nextStep}: ${pipelineSteps[nextStep - 1].name} å®äº`]);
return nextStep;
});
}, 500);
};
const renderResultForStep = (stepIndex: number) => {
if (currentStep <= stepIndex) return null;
const step = pipelineSteps[stepIndex];
const output = completeTrace[step.traceKey as keyof typeof completeTrace];
return (
<div style={{ marginTop: '8px', padding: '8px', border: '1px solid #eee', borderRadius: '4px' }}>
<strong>{step.name}:</strong>
<pre style={{ whiteSpace: 'pre-wrap', wordBreak: 'break-all', fontSize: '12px' }}>{JSON.stringify(output, null, 2)}</pre>
</div>
);
};
const renderPhonemeFeedback = (results: PhonemeMatchResult[]) => {
return (
<div style={{ display: 'flex', flexWrap: 'wrap', gap: '8px', fontFamily: 'monospace' }}>
{results.map((r, i) => (
<span key={i} style={{ padding: '4px 8px', borderRadius: '4px', background: r.match ? '#d4edda' : '#f8d7da', color: r.match ? '#155724' : '#721c24' }}>
{r.phoneme}
</span>
))}
</div>
);
};
return (
<div style={{ fontFamily: 'sans-serif', maxWidth: '800px', margin: '0 auto', padding: '20px' }}>
<header style={{ borderBottom: '1px solid #ccc', paddingBottom: '10px' }}>
<h1 style={{ fontSize: '24px' }}>ð¯ Accent Archer</h1>
<p>声ã®ãã®ãŸããAIã¢ãŒãã£ãŒãæ¡ç¹</p>
</header>
<main style={{ marginTop: '20px' }}>
<div style={{ background: '#f9f9f9', padding: '15px', borderRadius: '8px' }}>
<h2 style={{ fontSize: '18px', marginTop: '0' }}>ææŠ: é¢è¥¿åŒ</h2>
<p>ãææ¬ãã¬ãŒãº: <strong>ãããããŸã£ãïŒ</strong></p>
<button onClick={handleReplay} disabled={isRunning} data-proof="replay-button" style={{ padding: '10px 15px', fontSize: '16px', cursor: 'pointer', background: '#0070f3', color: 'white', border: 'none', borderRadius: '5px' }}>
{isRunning ? 'å®è¡äž...' : 'ãµã³ãã«å®è¡ãã¬ãŒã¹ãåç'}
</button>
</div>
<div style={{ marginTop: '20px' }} data-proof="results-display">
<h2 style={{ fontSize: '18px' }}>å®è¡çµæ</h2>
{currentStep === 0 && <p style={{ color: '#888' }}>ãŸã å®è¡ãããŠããŸããã</p>}
{currentStep > 0 && (
<div data-proof="score-display">
{finalResult && (
<div style={{ border: '2px solid #0070f3', padding: '15px', borderRadius: '8px' }}>
<h3 style={{ marginTop: '0' }}><span data-proof="score-label">çäžç:</span> {finalResult.score}%</h3>
<p><strong>ãã£ãŒãããã¯:</strong> {finalResult.feedback}</p>
<div data-proof="phoneme-feedback">
<p><strong>ããªãã®çºé³ (é³çŽ ):</strong></p>
{renderPhonemeFeedback(finalResult.results)}
<p style={{marginTop: '10px'}}><strong>ãææ¬ (é³çŽ ):</strong></p>
{renderPhonemeFeedback(completeTrace.targetPhrase.phonemeSequence.map(p => ({phoneme: p, match: true, details: ''})))}
</div>
<button onClick={() => { setCurrentStep(0); setFinalResult(null); }} style={{marginTop: '15px', padding: '8px 12px', cursor: 'pointer'}} data-proof="retry-button">åææŠ</button>
</div>
)}
</div>
)}
<div style={{marginTop: '20px', fontSize: '12px', color: '#666'}}>
<h4>å®è¡ãã°:</h4>
{traceLog.map((log, i) => <div key={i}>{log}</div>)}
</div>
</div>
</main>
</div>
);
}
Run context. ããã§ã¯ç®¡ç倿ã«å¿ èŠãªRunã®èŠçŽã ãã衚瀺ããŸããpromptãinputãresponseãmetadataJsonã®å šæã¯é垞確èªããå€ãã å¿ èŠãªå Žåã ãRun詳现ãã°ã§ç¢ºèªããŸãã
- Run ID
- run_selfdirected_agent_n_20260710T063625
- èµ·åçš®å¥
- llm_pipeline
- èªåŸåºŠ
- L1_assisted
- å®è¡è
- system / LLM Pipeline Publisher
- éå§
- 2026/7/10 15:52:13 JST
- å®äº
- 2026/7/10 15:52:13 JST
- çæ / å ¬é / 倱æ
- 1 / 1 / 0
- 蚌跡件æ°
- 6 events / 29 artifacts / 40 checks
LLM pipeline run for selfdirected_agent_n_20260710T063625. Published 0 project(s).
