{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://aisdlclandscape.org/schema/tool.json","title":"AI SDLC Landscape tool record","description":"One file in data/tools/. Every value with a fact in it needs a public source. See CONTRIBUTING.md.","type":"object","required":["id","name","company","url"],"additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^[\\w.-]+$","description":"Matches the file name, without .yaml."},"name":{"type":"string"},"company":{"type":"string"},"url":{"type":"string","format":"uri","description":"The tool's own website."},"layer":{"enum":["agent-infra","model"],"description":"Set for cross-cutting nodes instead of a primary phase."},"primary_phase":{"enum":["plan","design","code","review","test","security","cicd","deploy","operate","maintain","understand","measure","platform"]},"phases":{"type":"array","items":{"enum":["plan","design","code","review","test","security","cicd","deploy","operate","maintain","understand","measure","platform"]}},"segment":{"enum":["full-lifecycle","multi-phase","point"],"description":"Worked out from phases when left out."},"sub_kind":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"A judgement from the published facts; needs no source."},"target_buyer":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"A judgement from the published facts; needs no source."},"interface":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"A judgement from the published facts; needs no source."},"autonomy":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"A judgement from the published facts; needs no source."},"summary":{"type":"string","description":"The vendor's own one-line claim, quoted."},"customers":{"description":"Needs a sources entry for this field."},"traction":{"description":"Needs a sources entry for this field."},"gtm_partners":{"description":"Needs a sources entry for this field."},"pricing_model":{"description":"Needs a sources entry for this field."},"entry_price":{"description":"Needs a sources entry for this field."},"deployment":{"description":"Needs a sources entry for this field."},"models":{"description":"Needs a sources entry for this field."},"open_source":{"type":"boolean"},"compliance":{"description":"Needs a sources entry for this field."},"founded":{"type":"integer"},"hq":{"description":"Needs a sources entry for this field."},"headcount_band":{"description":"Needs a sources entry for this field."},"funding_total":{"description":"Needs a sources entry for this field."},"last_round":{"description":"Needs a sources entry for this field."},"status":{"description":"Needs a sources entry for this field."},"relations":{"type":"array","items":{"type":"object","required":["type","to"],"additionalProperties":false,"properties":{"type":{"enum":["integrates_with","built_on_model","acquired_by","partners_with","competes_with","ships_inside"]},"to":{"type":"string","pattern":"^[\\w.-]+$","description":"A tool id, or a key in data/externals.yaml."},"sources":{"type":"array","items":{"type":"string","format":"uri"}}}}},"sources":{"type":"array","items":{"type":"object","required":["field","url","retrieved"],"additionalProperties":false,"properties":{"field":{"enum":["summary","customers","traction","gtm_partners","pricing_model","entry_price","deployment","models","open_source","compliance","founded","hq","headcount_band","funding_total","last_round","status","relations"]},"url":{"type":"string","format":"uri","pattern":"^https?://"},"retrieved":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}}}}}