Reference thread exploring multi-file LLM context workflows under Department of Defense (DoD) / Department of War (DoW) Impact Level 5 (IL5) restrictions and non-administrative user permissions.
@workspace command in the chat pane to reference your entire project, or manually open and pin multiple files to the chat context.Ctrl+Enter to scan your entire codebase, or type @ to attach specific multiple files, folders, or code blocks instantly.@file in the chat to add as many individual files to your context as you want.config.json to point directly to an internal DoD IL5 API gateway. If your environment provides API access to the approved models hosted on the GenAI.mil platform—such as Gemini for Government, ChatGPT Mil, or Grok for Government—you can route Continue's multi-file @file features through that secure endpoint.Since you already have access to Ask Sage, the most frictionless option is to completely bypass their IDE plugin.
.zip archive of your codebase folder. Because the browser handles the upload natively, it requires absolutely no administrative privileges or background binaries.If you want to feed multiple files into an LLM but the interface you are using only allows one file at a time (like the Ask Sage plugin or a basic chat window), you can use a simple, user-level Python script inside PyCharm to merge your files into a single context document.
import os
# Define the files you want to include in your context
files_to_combine = [
"src/main.py",
"src/utils.py",
"tests/test_main.py"
]
output_file = "ai_context.txt"
with open(output_file, "w", encoding="utf-8") as outfile:
for file_path in files_to_combine:
if os.path.exists(file_path):
outfile.write(f"\n\n=== START OF FILE: {file_path} ===\n")
with open(file_path, "r", encoding="utf-8") as infile:
outfile.write(infile.read())
outfile.write(f"\n=== END OF FILE: {file_path} ===\n")
else:
print(f"Warning: {file_path} not found.")
print(f"Combined context saved to {output_file}. You can now attach this single file.")
.zip file is exactly how the Ask Sage Web Workspace is designed to ingest large, multi-file datasets natively..zip file into your Ask Sage browser session, the platform unpacks it and processes the contents into its underlying dataset context.
Once the zip file is fully processed by the interface, you can treat the AI as if it has your entire directory structure open. Use these prompt styles to pinpoint files and folders:
Because you are working in a DoD IL5 secure environment, you must ensure you aren't accidentally exporting hidden files or local build metadata that could corrupt the AI's context or trigger compliance flags.
Before right-clicking and zipping your folder, manually delete or exclude:
.venv/, env/, node_modules/) — these will bloat the zip file and cause the upload to fail due to size limits..idea/, .vscode/)__pycache__/, .pytest_cache/, build/, dist/).git/)#!/usr/bin/env perl
use strict;
use warnings;
use File::Spec;
# Define the files you want to include in your context
my @files_to_combine = (
'src/main.py',
'src/utils.py',
'tests/test_main.py'
);
my $output_file = 'ai_context.txt';
# Open the output file for writing
open(my $outfile, '>', $output_file) or die "Cannot open '$output_file' for writing: $!";
foreach my $file_path (@files_to_combine) {
if (-e $file_path) {
print "Processing: $file_path\n";
print $outfile "\n\n=== START OF FILE: $file_path ===\n";
# Open and read the source file
if (open(my $infile, '<', $file_path)) {
while (my $line = <$infile>) {
print $outfile $line;
}
close($infile);
} else {
warn "Warning: Could not open '$file_path' for reading: $!\n";
}
print $outfile "\n=== END OF FILE: $file_path ===\n";
} else {
warn "Warning: '$file_path' not found.\n";
}
}
close($outfile);
print "Combined context saved to '$output_file'. You can now attach this single file.\n";
pom.xml and Java classes:
#!/usr/bin/env perl
use strict;
use warnings;
# Define your Java Spring Boot files here
my @files_to_combine = (
'pom.xml',
'src/main/resources/application.properties',
'src/main/java/com/example/demo/DemoApplication.java',
'src/main/java/com/example/demo/controller/ApiController.java'
);
my $output_file = 'ai_context.txt';
open(my $outfile, '>', $output_file) or die "Cannot open '$output_file' for writing: $!";
foreach my $file_path (@files_to_combine) {
if (-e $file_path) {
print "Processing: $file_path\n";
print $outfile "\n\n=== START OF FILE: $file_path ===\n";
if (open(my $infile, '<', $file_path)) {
while (my $line = <$infile>) {
print $outfile $line;
}
close($infile);
} else {
warn "Warning: Could not open '$file_path' for reading: $!\n";
}
print $outfile "\n=== END OF FILE: $file_path ===\n";
} else {
warn "Warning: '$file_path' not found.\n";
}
}
close($outfile);
print "Combined context saved to '$output_file'.\n";
If you decide to stick with the browser zip file upload method for your Spring Boot application, make sure to delete or exclude these standard Java build directories before creating the archive to save space and respect context limits:
target/ (Contains compiled .class files, heavy JARs, and build outputs).gradle/ or build/ (If using Gradle instead of Maven).idea/ (IntelliJ configuration data)