con un clic
new_language
new_language contiene 10 skills recopiladas de KoichiYatsuzuka, con cobertura ocupacional por repositorio y páginas de detalle dentro del sitio.
Skills en este repositorio
Use when working on C/C++ ABI interop — passing values/structs to/from external C/C++ DLLs (import[cpp-dll]/import[cpp-lib]), C ABI type annotations (int8/int32/float32/...), InstanceData raw-block layout, zero-copy vs. shadow-conversion struct passing, or write-back for mutable pointer arguments. This is a design spec + implementation-phase log (P0–P7, all marked done) referenced from many src/ comments.
Use when debugging or testing the VS Code extension's type-inference/analysis code (inlay hints, hover, diagnostics) via the standalone debug runner (node run_debug.js), without launching VS Code itself. Also use after changing analysis.ts, type_infer.ts, or native_module.ts to know which npm script to recompile. For adding/modifying an extension feature itself or packaging the VSIX, use the vscode-extension-dev skill instead.
Use when adding or modifying a feature of the Arrow VS Code extension itself (vscode-extension/) — syntax highlighting, hover, inlay hints, completions, go-to-definition, diagnostics, commands/keybindings, settings, or the built-in function stub. Covers the source-file map, build commands, and the mandatory VSIX packaging step. For just exercising existing analysis code against a .ar file, use the vscode-debug-runner skill instead.
Use before modifying the lexer, parser, static type checker, interpreter, or VS Code extension — gives a compact map of what each subsystem already supports (keywords, control flow, type-guard narrowing, value types, closures, exceptions, async, native modules) and which dedicated skill to open for the full implementation reference.
Use when you need to know where a file, module, or subsystem lives in the Arrow repository (Rust src/, Python impl_python/, examples/, vscode-extension/), or what a given file is responsible for. Read this before navigating an unfamiliar part of the tree instead of globbing blindly.
Use when writing, reading, or extending Arrow (.ar) import statements — `import[lang] module.path as alias` / `from module import[lang] Name` — including .py, .dll/.lib (C), .rs, C#, or Node.js interop. Explains what each `[lang]` tag loads and how src/parser/imports.rs and src/interpreter/exec.rs implement it, down to key line numbers.
Use when modifying src/interpreter/ — the tree-walk interpreter (statement exec, expression eval, function/closure calls, class instantiation, operators, exceptions, async task threads, or the native ABI handle arena). Gives the module map, Interpreter/Value struct layout, exec/eval dispatch tables, closure capture rules, and the native ABI handle table.
Use when modifying src/parser/ — the recursive-descent parser (statement/expression precedence chain, class/trait parsing, type/param parsing, or import/module loading during parsing). Gives the module map, Parser struct fields, parse_stmt dispatch table, expression precedence chain, and the full list of parse-time validations.
Use when running `cargo run -- --compile`, working with .arc/.ars partial-compilation output, modifying src/partial_compiler/ (LLVM codegen, eligibility rules, the typed ABI, or the Rust-crate import[rs] loader), or explaining/demoing how an Arrow (.ar) module gets compiled to native machine code and dispatched natively on import. Includes the canonical physics.ar demo workflow and full codegen implementation reference.
Use when modifying src/type_check/ (the static type checker) — internal type representation (InferredType), annotation syntax, inference rules, type compatibility/coercion, type-guard narrowing, access control, overload resolution, or any StaticTypeError/TypeErrorKind variant. Also use when deciding what the checker currently does NOT verify.